OCP4版本安裝(虛擬機安裝版): 1. 服務器准備: 1.1 准備7台服務器,每台服務器的規划如下: bastion:1台,centos系統 192.168.145.181,安裝必要的輔助工具,如DNS、HTTP、LB、HARBOR等 bootstrap:1台,無需事先安裝系統,在安裝OCP4的過程中,通過iso鏡像安裝 192.168.145.182,安裝引導節點,會臨時創建一個K8S集群,負責引導OCP集群的安裝,等OCP安裝完成后,此節點可以刪除 master:3台,無需事先安裝系統,在安裝OCP4的過程中,通過iso鏡像安裝 192.168.145.183 192.168.145.184 192.168.145.185 worker:2台,無需事先安裝系統,在安裝OCP4的過程中,通過iso鏡像安裝 192.168.145.186 192.168.145.187 1.2 修改bastion的機器主機名(示例:bastion.ocp4.liufeng.cc) 2. LB、DNS、HARBOR、HTTP的准備。本篇是所有服務均安裝在bastion機器上,資源允許的話,也可以安裝在不同的機器上。 2.1 准備LB,使用haproxy實現 2.1.1 安裝haproxy # yum install haproxy 2.1.2 配置負載均衡器,把如下配置追加到haproxy.cfg文件后面。 frontend openshift-api-server bind *:6443 default_backend openshift-api-server mode tcp option tcplog backend openshift-api-server balance source mode tcp server bootstrap 192.168.145.182:6443 check server master1 192.168.145.183:6443 check server master2 192.168.145.184:6443 check server master3 192.168.145.185:6443 check frontend machine-config-server bind *:22623 default_backend machine-config-server mode tcp option tcplog backend machine-config-server balance source mode tcp server bootstrap 192.168.145.182:22623 check server master1 192.168.145.183:22623 check server master2 192.168.145.184:22623 check server master3 192.168.145.185:22623 check 2.1.3 啟動haproxy並設置開機啟動 # systemctl start haproxy # systemctl enable haproxy # systemctl status haproxy 如果haproxy沒有啟動,運行下面的命令后,再次啟動haproxy # setsebool -P haproxy_connect_any=1 2.1.4 開通防火牆以便可以訪問到 # firewall-cmd --add-port=6443/tcp --permanent # firewall-cmd --add-port=22623/tcp --permanent # firewall-cmd --reload # firewall-cmd --list-all 2.2 准備DNS,使用dnsmasq實現 2.2.1 安裝dnsmasq # yum install dnsmasq 2.2.2 配置dns解析 # ocp4 node address=/master1.ocp4.liufeng.cc/192.168.145.183 address=/master2.ocp4.liufeng.cc/192.168.145.184 address=/master3.ocp4.liufeng.cc/192.168.145.185 address=/worker1.ocp4.liufeng.cc/192.168.145.186 address=/worker2.ocp4.liufeng.cc/192.168.145.187 # etcd address=/etcd-0.ocp4.liufeng.cc/192.168.145.183 address=/etcd-1.ocp4.liufeng.cc/192.168.145.184 address=/etcd-2.ocp4.liufeng.cc/192.168.145.185 # etcd srv # <name>,<target>,<port>,<priority>,<weight> srv-host=_etcd-server-ssl._tcp.ocp4.liufeng.cc,etcd-0.ocp4.liufeng.cc,2380,0,10 srv-host=_etcd-server-ssl._tcp.ocp4.liufeng.cc,etcd-1.ocp4.liufeng.cc,2380,0,10 srv-host=_etcd-server-ssl._tcp.ocp4.liufeng.cc,etcd-2.ocp4.liufeng.cc,2380,0,10 # lb address=/.ocp4.liufeng.cc/192.168.145.186 address=/api.ocp4.liufeng.cc/192.168.145.181 address=/api-int.ocp4.liufeng.cc/192.168.145.181 # other address=/bootstrap.ocp4.liufeng.cc/192.168.145.182 address=/bastion.ocp4.liufeng.cc/192.168.145.181 address=/harbor.ocp4.liufeng.cc/192.168.145.181 2.2.3 啟動dnsmasq並設置開機自啟 # systemctl start dnsmasq # systemctl enable dnsmasq 2.2.4 防火牆及設定 # firewall-cmd --add-port=53/tcp --permanent # firewall-cmd --add-port=53/udp --permanent # firewall-cmd --reload # firewall-cmd --list-all 2.2.5 驗證dns是否生效,例如: # dig +short -t A etcd-0.ocp4.liufeng.cc @192.168.145.181 # dig +short -t SRV _etcd-server-ssl._tcp.ocp4.liufeng.cc @192.168.145.181 如果沒有dig命令,請使用如下命令安裝 # yum install bind-utils 2.3 Harbor、http服務器的准備 2.3.1 Harbor的安裝,使用https訪問,http的訪問留着給http服務器使用。 見Harbor安裝文檔 2.3.2 Harbor安裝完成之后,就使用Harbor自帶的nginx作為http服務器。 2.3.2.1 修改docker-compose.yml文件,proxy的volumes部分,就是加一個映射(這里是把主機的/home/www目錄映射成nginx容器的/var/www/html目錄): proxy: image: goharbor/nginx-photon:v2.1.3 container_name: nginx restart: always cap_drop: - ALL cap_add: - CHOWN - SETGID - SETUID - NET_BIND_SERVICE volumes: - ./common/config/nginx:/etc/nginx:z - /home/harbor/data/secret/cert:/etc/cert:z - /home/www:/var/www/html:z - type: bind source: ./common/config/shared/trust-certificates target: /harbor_cust_cert networks: - harbor dns_search: . ports: - 80:8080 - 443:8443 depends_on: - registry - core - portal - log logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "proxy" 2.3.2.2 修改nginx.conf 在harbor目錄中尋找到nginx的配置文件:common/config/nginx/nginx.conf 修改如下server段,注釋掉308跳轉,並加一個root目錄 server { listen 8080; #server_name harbordomain.com; #return 308 https://$host:443$request_uri; root /var/www/html; } 2.3.2.3 開通防火牆並驗證harbor與nginx是否正常 # firewall-cmd --add-port=443/tcp --permanent # firewall-cmd --add-port=80/tcp --permanent # firewall-cmd --reload # docker-compose down # docker-compose up -d # systemctl enable docker 3. 同步ocp4的鏡像 3.1 安裝同步工具,也就是oc客戶端 # wget https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz # tar xvf oc.tar.gz # mv kubectl oc /usr/local/bin/ 3.2 創建pull-secret.json 3.2.1 創建私有倉庫的secret信息 # echo -n 'admin:Harbor12345' | base64 -w0 //對harbor登錄信息進行base64加密,示例:YWRtaW46SGFyYm9yMTIzNDU= 3.2.2 從官網下載pull-secret,地址:https://cloud.redhat.com/openshift/install/pull-secret,下載是一個txt文件,需要轉換為json文件。 # cat pull-secret.txt | jq . > pull-secret.json 如果沒有jq命令,請安裝(需要epel源) # yum install jq 3.2.3 合並pull-secret.json文件 把上面的私有倉庫的信息也添加到pull-secret.json中。下載此文件似乎要redhat的賬號,那就注冊一個吧!免費的。其實如果安裝openshift社區版okd的話,可以不用下載,以后再表。 合並后的json文件類似如下: { "auths": { "harbor.ocp4.liufeng.cc": { "auth": "YWRtaW46SGFyYm9yMTIzNDU=", "email": "" }, "cloud.openshift.com": { "auth": "b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfYTdmNGQ1MjZiMGVlNDkwNzk2MmViZWRiZTE1ZjEwNTI6SVVFSExFTk9SNVdQVVc4QldUT1k2VVlSMlc2V0xMQTQwNDA5UTRJRzNBRDRHS0lXR0NGTzJaN0dXOTJTMzIzMg==", "email": "lf_30y@163.com" }, …… } } 3.3 拉取鏡像 先在私有倉庫建一個名為“openshift”的倉庫(如下的openshift/ocp4.7,后面的ocp4.7就不需要手動創建了,會自動創建)。 # export LOCAL_REGISTRY='harbor.ocp4.liufeng.cc' # export LOCAL_REPOSITORY='openshift/ocp4.7' # export PRODUCT_REPO='openshift-release-dev' # export RELEASE_NAME='ocp-release' # export OCP_RELEASE='4.7.0-fc.4' # export ARCHITECTURE='x86_64' # export LOCAL_SECRET_JSON='/root/pull-secret.json' # export GODEBUG='x509ignoreCN=0' # oc adm release mirror -a ${LOCAL_SECRET_JSON} --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} --to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} ocp: https://quay.io/repository/openshift-release-dev/ocp-release?tab=tags okd: https://quay.io/repository/openshift/okd?tab=tags 這兩個地址是同步鏡像的源倉庫,對照oc adm release mirror命令,可以推出上述幾個export的變量的值,同步完成之后,會顯示類似下面的信息,請保存下來,后面要用到。 Success Update image: harbor.ocp4.liufeng.cc/openshift/ocp4.7:4.7.0-fc.4-x86_64 Mirror prefix: harbor.ocp4.liufeng.cc/openshift/ocp4.7 To use the new mirrored repository to install, add the following section to the install-config.yaml: imageContentSources: - mirrors: - harbor.ocp4.liufeng.cc/openshift/ocp4.7 source: quay.io/openshift-release-dev/ocp-release - mirrors: - harbor.ocp4.liufeng.cc/openshift/ocp4.7 source: quay.io/openshift-release-dev/ocp-v4.0-art-dev To use the new mirrored repository for upgrades, use the following to create an ImageContentSourcePolicy: apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: name: example spec: repositoryDigestMirrors: - mirrors: - harbor.ocp4.liufeng.cc/openshift/ocp4.7 source: quay.io/openshift-release-dev/ocp-release - mirrors: - harbor.ocp4.liufeng.cc/openshift/ocp4.7 source: quay.io/openshift-release-dev/ocp-v4.0-art-dev 3.4 查看同步結果: # curl -s -u admin:Harbor12345 -k https://harbor.ocp4.liufeng.cc/v2/openshift/ocp4.7/tags/list|jq . 4. 生成openshift-install安裝文件 # oc adm release extract -a ${LOCAL_SECRET_JSON} --command=openshift-install "${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}" [--skip-verification=true --insecure=true] 因為要校驗一致性,所以不要使用下載的openshift-install,而是用上面的命令會生成openshift-install文件,生成后的openshift-install文件拷貝到path路徑下。 5. 准備安裝文件 5.1 因為coreos的默認用戶是core,所以要准備core用戶的ssh key # ssh-keygen -t rsa -b 4096 -N '' -f ~/.ssh/core_rsa # eval "$(ssh-agent -s)" # ssh-add ~/.ssh/core_rsa 5.2 准備install-config.yaml文件 # mkdir -pv ~/ocp4/ocp4install # cd ~/ocp4/ocp4install 准備一個干凈的空的文件夾(例如ocp4-install),在這個文件夾內創建install-config.yaml文件,詳細內容見后面的:install-config.yaml 5.2.1 metadata.name + baseDomain 即為集群名稱 5.2.2 compute.replicas 設置為0 5.2.3 pullSecret 之前拉取用的json文件再轉換成txt的格式即可 5.2.4 sshKey 為將來要ssh到集群所用的pub文件,即上面生成的core_rsa.pub文件 5.2.5 additionalTrustBundle 為前一步驟安裝harbor時本地生成的crt文件,注意縮進2格 5.2.6 imageContentSources 為同步私服鏡像后,最后生成出來的內容 5.3 生成ign文件 首先備份install-config.yaml文件,因為使用下面的命令會刪除掉install-config.yaml。 # openshift-install create manifests --dir=/root/ocp4/ocp4install # openshift-install create ignition-configs --dir=/root/ocp4/ocp4install 最終ocp4install文件夾生成如下文件: . ├── auth │ ├── kubeadmin-password │ └── kubeconfig ├── bootstrap.ign ├── master.ign ├── metadata.json └── worker.ign 【注意:從生成這個文件開始,24小時內必須完成ocp集群的安裝!!!】 5.4 上傳文件到http服務器 把上述生成的.ign文件上傳,讓其可以通過http訪問到。 # cd ~/ocp4/ocp4install # cp *.ign /home/www/ # chmod +r /home/www/*.ign 6. 創建rhcos鏡像 6.1 RHCOS鏡像下載地址:https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.6/latest/,如果可用,請使用與 OpenShift Container Platform 版本匹配的鏡像版本。沒有的話,下載最高版本的鏡像,其版本號應小於或等於您安裝的 OpenShift Container Platform 版本。iso文件名類似:rhcos-<version>-live.<architecture>.iso 6.2 用虛擬機啟動下載的rhcos的iso,再引導啟動前按Tab,加入啟動參數: rd.neednet=1 ip=192.168.145.182::192.168.145.254:255.255.255.0:bootstrap.ocp4.liufeng.cc:eth0:none nameserver=192.168.145.181 coreos.inst.install_dev=/dev/xvda coreos.inst.ignition_url=http://192.168.145.181/bootstrap.ign 6.2.1 rd.neednet=1,需要網絡信息 6.2.2 ip=,后面的格式是“IP地址::網關:子網掩碼:完整主機名:網卡:none 6.2.3 nameserver=,DNS服務器地址,可以添加多個 6.2.4 coreos.inst.install_dev=,安裝到本地哪個磁盤 6.2.5 coreos.inst.ignition_url=,ign文件的url,有三種ign文件bootstrap、master、worker,注意區分 7. 調試 7.1 在bastion節點上,執行如下命令查看進度: # openshift-install --dir=/root/ocp4/ocp4install wait-for bootstrap-complete --log-level=debug # openshift-install --dir=/root/ocp4/ocp4install wait-for install-complete --log-level=debug 7.2 在bastion節點上,使用oc命令: 沒有意外的話,執行下面的命令,可執行oc # export KUBECONFIG=/root/ocp4/ocp4install/auth/kubeconfig # oc get nodes # oc get ns # oc get pods --all-namespaces 8. oc的補全命令: # yum install bash-completion # oc completion bash > ~/.kube/completion.bash.inc 在~/.bash_profile里添加:source '/root/.kube/completion.bash.inc' 9. 創建用戶(使用htpasswd) 9.1 創建htpass-secret # htpasswd -c -B -b users.htpasswd admin liufeng.cc0021 //第一個用戶 # htpasswd -b -B users.htpasswd liufeng 8888.8888 //添加后續用戶 # oc create secret generic htpass-secret --from-file=htpasswd=</path/to/users.htpasswd> -n openshift-config 9.2 創建HTPasswd CR,新建一個文件(假設為htpasswd-cr.yaml),保存如下yaml: apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: my_htpasswd_provider mappingMethod: claim type: HTPasswd htpasswd: fileData: name: htpass-secret 9.3 應用HTPasswd CR及授權 # oc apply -f htpasswd-cr.yaml # oc adm policy add-cluster-role-to-user cluster-admin admin 9.4 登錄集群 # oc login -u <username> # oc whoami
install-config.yaml內容如下(請注意格式與縮進):
apiVersion: v1 baseDomain: liufeng.cc compute: - hyperthreading: Enabled name: worker replicas: 0 controlPlane: hyperthreading: Enabled name: master replicas: 3 metadata: name: ocp4 networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 networkType: OpenShiftSDN serviceNetwork: - 172.30.0.0/16 platform: none: {} fips: false pullSecret: '{"auths":{"harbor.ocp4.liufeng.cc":{"auth":"YWRtaW46SGFyYm9yMTIzNDU=","email":""},"quay.io":{"auth":"b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfYTdmNGQ1MjZiMGVlNDkwNzk2MmViZWRiZTE1ZjEwNTI6SVVFSExFTk9SNVdQVVc4QldUT1k2VVlSMlc2V0xMQTQwNDA5UTRJRzNBRDRHS0lXR0NGTzJaN0dXOTJTMzIzMg==","email":"lf_30y@163.com"},"registry.connect.redhat.com":{"auth":"NTMyMTk5MTJ8dWhjLTFmUXpOTjRWWHhaQ29OT0ZpR2QyOGVvYW9YSDpleUpoYkdjaU9pSlNVelV4TWlKOS5leUp6ZFdJaU9pSXlNVEkyTm1Kak4ySTJZamswTTJFd1lXRTVNVEl4TXpaa1kyUmhaVEl6TXlKOS53WHptUDhZT0ZPelh2TzQ5RXNCMlA3Q0VDc3ktRFctWG5CcWtTMXc5MkJSWU0wSzU1RDhHS3FwLW1VOFRMUk5Fa01Ja3dRWE5fRkdSY1Q3eEtqd2Z2SDVLTVNjVkpCdUpYSmtoS1gtdjEwRmZ6ZXF6U2tOZ2FsUFM4VnpXWi1WRG9iaXViQWtjSEYyeXotLUVGUVpGeEktbXZkYklZTkt5dXZSVkZQUW56cUJ5Q0s2d0pRMXI2MWRFRUxyRnU3a25lVFlZSU9wWXR0V21QTG5rU21FUjNrei14S2FGcG4zZFFhMG9rUUVDZlFHRVBVbFlvNkZqSTk3R3Z1Uk9NTmFqckxwUE1GSV9QZ21oeGd2OHFqVHg3M0hsOE9rWFlOSkRCSUMwN1dNcWN4ZHBfM3ZhMmRVdm5JUUo4X2o0OGt0dFpScTNVQWZMMkVRUXpQMDZIanJWVlgyWTZkWEhYVWRHWFZPem9JckVLcHBTQTBDRExCM1dkOUU1YVpHRmF5a21YOTZOSmdWWnB5enVDcW54WWZIWWM3WDliLXl2UkdCSGtrNzdxdTBJNGowa2JqUWZvelJNS0VVcUo0VFgtVUtNX3ZqLUE5b09Tek04bWJEa3JOWEFMM0NzOHFGc2ZBRTVPUDFYdlIyRDRDck81eWdEZzVVMks2dHYyajktRlE3Zmx1eTg4b0ZWUEZybG5IbTNNX1I2ZXBocXFZZVZSME1hMEN6bHNUZzJLUjBRSHZvN3ZvaWRsaG1NcHdFWkJWalJPR3p0a1FPcUdqdnZMc0ZxZWpsOGRsb3I1MFFtUFltd2E0aTFrdU5wY0l5ZzhZeGU3ODFhYUtMbjFldzZXVC1veWtTbjhNaF9RYWM2SHExdkpDTWcyM1BDVzU2M1VNV3FhU2ZRbnhhWFdxTQ==","email":"lf_30y@163.com"},"registry.redhat.io":{"auth":"NTMyMTk5MTJ8dWhjLTFmUXpOTjRWWHhaQ29OT0ZpR2QyOGVvYW9YSDpleUpoYkdjaU9pSlNVelV4TWlKOS5leUp6ZFdJaU9pSXlNVEkyTm1Kak4ySTJZamswTTJFd1lXRTVNVEl4TXpaa1kyUmhaVEl6TXlKOS53WHptUDhZT0ZPelh2TzQ5RXNCMlA3Q0VDc3ktRFctWG5CcWtTMXc5MkJSWU0wSzU1RDhHS3FwLW1VOFRMUk5Fa01Ja3dRWE5fRkdSY1Q3eEtqd2Z2SDVLTVNjVkpCdUpYSmtoS1gtdjEwRmZ6ZXF6U2tOZ2FsUFM4VnpXWi1WRG9iaXViQWtjSEYyeXotLUVGUVpGeEktbXZkYklZTkt5dXZSVkZQUW56cUJ5Q0s2d0pRMXI2MWRFRUxyRnU3a25lVFlZSU9wWXR0V21QTG5rU21FUjNrei14S2FGcG4zZFFhMG9rUUVDZlFHRVBVbFlvNkZqSTk3R3Z1Uk9NTmFqckxwUE1GSV9QZ21oeGd2OHFqVHg3M0hsOE9rWFlOSkRCSUMwN1dNcWN4ZHBfM3ZhMmRVdm5JUUo4X2o0OGt0dFpScTNVQWZMMkVRUXpQMDZIanJWVlgyWTZkWEhYVWRHWFZPem9JckVLcHBTQTBDRExCM1dkOUU1YVpHRmF5a21YOTZOSmdWWnB5enVDcW54WWZIWWM3WDliLXl2UkdCSGtrNzdxdTBJNGowa2JqUWZvelJNS0VVcUo0VFgtVUtNX3ZqLUE5b09Tek04bWJEa3JOWEFMM0NzOHFGc2ZBRTVPUDFYdlIyRDRDck81eWdEZzVVMks2dHYyajktRlE3Zmx1eTg4b0ZWUEZybG5IbTNNX1I2ZXBocXFZZVZSME1hMEN6bHNUZzJLUjBRSHZvN3ZvaWRsaG1NcHdFWkJWalJPR3p0a1FPcUdqdnZMc0ZxZWpsOGRsb3I1MFFtUFltd2E0aTFrdU5wY0l5ZzhZeGU3ODFhYUtMbjFldzZXVC1veWtTbjhNaF9RYWM2SHExdkpDTWcyM1BDVzU2M1VNV3FhU2ZRbnhhWFdxTQ==","email":"lf_30y@163.com"}}}' sshKey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3Aav1hMwvu6tQUtAy9VVrot8HBgQ7fQ8uZlw5GvPnts31BLrEha4UvbXbZAF1eACcwYhKRIEDz9VAt63WiGX3FqgMO3l5E5Ekk5V8GQBbSf0TezNLYTiPEvZV7JDNlsF2vAhGyHrYmnElJriVxZn3KzwqeIz9l2aOXHi1o/t0FD4P6FbAjT3xB1x+EX5aaAeRT5uiIiPzW6MljZOoyyApriO6FsrblIiksx4MZazp63ubB20IKYh54Cg7TIzQ5XkR8DCXPcZ1Jm2+XnRyQaN9ydJf9hwTivCGLesnHDBTkZ/wolh3hAMlHg1wlvAwYhRC+Ukc+Ewqit/Z5MkRCDHqYFUJVJwrLZQElBpBmjMKLBKXj1lo1CplF77ubqutl+hs46UIu+Hc+elqdDxn03TOsBouuJVwuvCU1IaPUeLtkz0LxaAykpVog/5NopPNVWVB5htkyqTeONfEFeeUL6/Af8Pn7ARd6giLmuTggG8lCxWYnN+Y48pmc3adG8NavsjKfEuhFzbgMu7t3DF6Aqz3emxGaUfJ5pE8vNVjisP4ufOwTYvjckO1adui1XLAx6i0CDrQO17nyK3lrRQLeySZlQmg2elI2OaPqBLVfBQBuWGI6ECPAmBdjJ/9BcsPlboXOkan1UmJpeFBcAkiClO0kozz3NUvmkoXXxzjULqa3w== root@bastion.ocp4.baison.cc' additionalTrustBundle: | -----BEGIN CERTIFICATE----- MIIFtzCCA5+gAwIBAgIJAJo2D89dAHnlMA0GCSqGSIb3DQEBCwUAMHExCzAJBgNV BAYTAkNOMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hhbmdoYWkxDzAN BgNVBAoMBkJhaXNvbjELMAkGA1UECwwCaXQxHjAcBgNVBAMMFWhhcmJvci5vY3A0 LmJhaXNvbi5jYzAgFw0yMTAxMzAxMTM2NDhaGA8yMTIxMDEwNjExMzY0OFowcTEL MAkGA1UEBhMCQ04xETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFuZ2hh aTEPMA0GA1UECgwGQmFpc29uMQswCQYDVQQLDAJpdDEeMBwGA1UEAwwVaGFyYm9y Lm9jcDQuYmFpc29uLmNjMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA 0V0po4o0ZskyvkzC4uhME+Pv5AZbnONRMkLLVRTMjEKNOnmyS84T5aN3EYGujfGl FLTyraSpRQNLA3PkJr7pEWaRljpTjOvrNxo3u819VDcFBOn9GEVprvEd5HaennBQ ip6BZrhHPIjv8uHs4TXSWfxPZMuX9gpg0bj5Icm+V3lHImTALvOlDXloDTokPlq9 kX16ZB14AGA287w3p4B7S2a5+b109DTHLAyDGi8JMiLJYJb0Xf4fdv8K5qv5WTPl qyjjkVnLi8ka3TLVDXKxYTDtCkqMVp3MmPpyntBLkoiB2F7GVSwVruppf4F+TGJw gaSz3RGl4Mnpy3qgUjtZ4dgXsYL+Bpg3+LzJe22lyIejYEDCw/QKhzqfoxOIPiD8 TAyjqH9nEZ2pYF0gBIrZDe1cCfpN/+cdBTwac96Ph45rkWkF+BVSqRV0g0ppTSMi BQ+x5c1WooUfVqtunqJ2rixapm+ASmbMG1aCP/5/18gE/pZQlX0cxOrZa9R8lZgZ rq3HLRScGqC1rhe/NDpV2zAx4bFNwKKLqPu6bLPkn7jpWcuQhHdZcCfvHojz1IPn C5zJPmu7D3HRubLcQ3AK97etyG+yS7Orrmwr2Ci84eqcZYy66fEoJA7a69kolFW1 z6+0rQIrIrEjqsxsY5xTt8wbTN81LbyKal8ly819TtMCAwEAAaNQME4wHQYDVR0O BBYEFB0hnyLxArythRW0K/7/LaSr00HCMB8GA1UdIwQYMBaAFB0hnyLxArythRW0 K/7/LaSr00HCMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAA8+l3YW MIpl3oeGsFSZ8n+HGNCcOZz6eiL4qx9m2pvCR2VJ4FYdFchEfX9hadXRi6o6p9Jo XNkaLsymlaLtU4eCgTUpiXz8v29zqGm+M+0OHr/EEqS3DoN6sfSEalH+KiKXA6sB C6BP0afnftR3TIjxmMEjfjOcsyaaOn/oJ6qstViP1M8vajKtYlKWvhg7cD4pOoCy 1LyIeibBoHNFPI4qVhd43pPnTukeV61X5DZsEIuODKXvS7RFrpx4x5um58fogsP/ tBfwrOhNAXSpO3p6OwdE9Zk/CQm4Irj7NIIB1sc5X0LreWLEQHIlGEfFfpMPKPEU fKOnfjx1k5pUDn8fpwqFGpMvn5qB+jHpMe4xeJy6L8ge2JygpEZd69EgdF3KwK8M szOkxXZNlUg9F3B4BhYMqHft6lI6yz6Vn+h5yOdDTiP33jytQDuLdwgiWD8MJXiu ta3pXc0/fpuPa5UKa75D9vyXZIPG340x/LprezwpYYR2inEu3a6OF65Nyi0FRsac L7lbhEtZdOX+ZkuhvL02+Cy3JyipibShyK9Z+aoMHR+1sv/0qjN8hhIo3kcMXtcG l722rM9IIawR9o5f/IJO9AgvHd1QwJdRY2ftvyf7cLLlbEnOK1K/YFdYzAciHzoD dpez8+4JZAi+6si63NSuVPh2ZcZRiIln+PEX -----END CERTIFICATE----- imageContentSources: - mirrors: - harbor.ocp4.liufeng.cc/openshift/ocp4.7 source: quay.io/openshift-release-dev/ocp-release - mirrors: - harbor.ocp4.liufeng.cc/openshift/ocp4.7 source: quay.io/openshift-release-dev/ocp-v4.0-art-dev