فهرست منبع

Update the docker-registry CA symlink on nodes during upgrade

Change the target name to be consistent with 3.9 while updating the
source name to be consistent with upstream.

Also fix errors when upgrading from a true static config (instead of a
bootstrap config).
Clayton Coleman 7 سال پیش
والد
کامیت
e4ac1d6d14

+ 1 - 1
roles/openshift_gcp/tasks/setup_scale_group_facts.yml

@@ -31,7 +31,7 @@
   add_host:
   add_host:
     name: "{{ hostvars[item].gce_name }}"
     name: "{{ hostvars[item].gce_name }}"
     groups: nodes, new_nodes
     groups: nodes, new_nodes
-    openshift_node_bootstrap: False
+    openshift_node_bootstrap: "{{ openshift_node_bootstrap | default(True) }}"
   with_items: "{{ groups['tag_ocp-node'] | default([]) | difference(groups['tag_ocp-bootstrap'] | default([])) }}"
   with_items: "{{ groups['tag_ocp-node'] | default([]) | difference(groups['tag_ocp-bootstrap'] | default([])) }}"
 
 
 - name: Add bootstrap node instances
 - name: Add bootstrap node instances

+ 3 - 5
roles/openshift_node/tasks/bootstrap.yml

@@ -60,14 +60,12 @@
     src: bootstrap.yml.j2
     src: bootstrap.yml.j2
     dest: /root/openshift_bootstrap/bootstrap.yml
     dest: /root/openshift_bootstrap/bootstrap.yml
 
 
-- name: symlink master ca for docker-registry
+- name: Create a symlink to the node client CA for the docker registry
   file:
   file:
-    src: "{{ item }}"
-    dest: "/etc/docker/certs.d/docker-registry.default.svc:5000/{{ item | basename }}"
+    src: "{{ openshift_node_config_dir }}/client-ca.crt"
+    dest: "/etc/docker/certs.d/docker-registry.default.svc:5000/node-client-ca.crt"
     state: link
     state: link
     force: yes
     force: yes
-  with_items:
-  - "{{ openshift_node_config_dir }}/client-ca.crt"
 
 
 - name: Remove default node-config.yaml to allow bootstrapping config
 - name: Remove default node-config.yaml to allow bootstrapping config
   file:
   file:

+ 27 - 22
roles/openshift_node/tasks/upgrade/bootstrap_changes.yml

@@ -1,25 +1,4 @@
 ---
 ---
-- name: Update node-config to prepare for bootstrapping
-  yedit:
-    src: "{{ openshift.common.config_base }}/node/node-config.yaml"
-    edits:
-    - key: servingInfo.certFile
-      value: ""
-    - key: servingInfo.keyFile
-      value: ""
-    - key: kubeletArguments.bootstrap-kubeconfig
-      value:
-      - "{{ openshift.common.config_base }}/node/bootstrap.kubeconfig"
-    - key: kubeletArguments.rotate-certificates
-      value:
-      - "true"
-    - key: kubeletArguments.cert-dir
-      value:
-      - "{{ openshift.common.config_base }}/node/certificates"
-    - key: kubeletArguments.feature-gates
-      value:
-      - RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true
-
 - name: Check for existing node-config.yaml
 - name: Check for existing node-config.yaml
   stat:
   stat:
     path: "{{ openshift.common.config_base }}/node/node-config.yaml"
     path: "{{ openshift.common.config_base }}/node/node-config.yaml"
@@ -42,6 +21,7 @@
     - "{{ openshift.common.config_base }}/node"
     - "{{ openshift.common.config_base }}/node"
     patterns:
     patterns:
     - system*.kubeconfig
     - system*.kubeconfig
+    - node.kubeconfig
   register: system_kubeconfigs
   register: system_kubeconfigs
 
 
 - name: Copy existing credentials to bootstrap credentials
 - name: Copy existing credentials to bootstrap credentials
@@ -53,7 +33,7 @@
     owner: root
     owner: root
     group: root
     group: root
     mode: 0600
     mode: 0600
-  with_items: "{{ system_kubeconfigs.files | default([]) | map(attribute='path') | list + [openshift.common.config_base+'/node/node.kubeconfig'] }}"
+  with_items: "{{ system_kubeconfigs.files | default([]) | map(attribute='path') | list }}"
 
 
 - name: Remove non-bootstrap configuration
 - name: Remove non-bootstrap configuration
   file:
   file:
@@ -63,6 +43,31 @@
   - "{{ openshift.common.config_base }}/node/node.kubeconfig"
   - "{{ openshift.common.config_base }}/node/node.kubeconfig"
   - "{{ openshift.common.config_base }}/node/node-config.yaml"
   - "{{ openshift.common.config_base }}/node/node-config.yaml"
 
 
+- name: Update node-config to prepare for bootstrapping
+  yedit:
+    src: "{{ openshift.common.config_base }}/node/bootstrap-node-config.yaml"
+    edits:
+    - key: servingInfo.certFile
+      value: ""
+    - key: servingInfo.clientCA
+      value: client-ca.crt
+    - key: servingInfo.keyFile
+      value: ""
+    - key: kubeletArguments.bootstrap-kubeconfig
+      value:
+      - "{{ openshift.common.config_base }}/node/bootstrap.kubeconfig"
+    - key: kubeletArguments.rotate-certificates
+      value:
+      - "true"
+    - key: kubeletArguments.cert-dir
+      value:
+      - "{{ openshift.common.config_base }}/node/certificates"
+    - key: kubeletArguments.feature-gates
+      value:
+      - RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true
+    - key: masterKubeConfig
+      value: node.kubeconfig
+
 - name: Use the admin.kubeconfig for the kubelet bootstrap identity
 - name: Use the admin.kubeconfig for the kubelet bootstrap identity
   copy:
   copy:
     remote_src: true
     remote_src: true

+ 7 - 0
roles/openshift_node/tasks/upgrade/config_changes.yml

@@ -12,6 +12,13 @@
     state: directory
     state: directory
     mode: 0755
     mode: 0755
 
 
+- name: Update the docker-registry CA symlink
+  file:
+    src: "{{ openshift_node_config_dir }}/client-ca.crt"
+    dest: "/etc/docker/certs.d/docker-registry.default.svc:5000/node-client-ca.crt"
+    state: link
+    force: yes
+
 - name: Update node-config for static pods
 - name: Update node-config for static pods
   yedit:
   yedit:
     src: "{{ openshift.common.config_base }}/node/node-config.yaml"
     src: "{{ openshift.common.config_base }}/node/node-config.yaml"

+ 4 - 0
roles/openshift_node_group/tasks/upgrade.yml

@@ -8,6 +8,8 @@
       value: ""
       value: ""
     - key: servingInfo.keyFile
     - key: servingInfo.keyFile
       value: ""
       value: ""
+    - key: servingInfo.clientCA
+      value: "client-ca.crt"
     - key: kubeletArguments.pod-manifest-path
     - key: kubeletArguments.pod-manifest-path
       value:
       value:
       - /etc/origin/node/pods
       - /etc/origin/node/pods
@@ -23,6 +25,8 @@
     - key: kubeletArguments.cert-dir
     - key: kubeletArguments.cert-dir
       value:
       value:
       - /etc/origin/node/certificates
       - /etc/origin/node/certificates
+    - key: masterKubeConfig
+      value: node.kubeconfig
     openshift_node_group_labels: "{{ node_group.labels | default([]) }}"
     openshift_node_group_labels: "{{ node_group.labels | default([]) }}"
   with_items: "{{ openshift_node_groups }}"
   with_items: "{{ openshift_node_groups }}"
   loop_control:
   loop_control: