Browse Source

Merge pull request #9982 from gnufied/fix-nfs-recyler-path

Add a pod template for recycler pod
OpenShift Merge Robot 6 years ago
parent
commit
6c0b8d9c84

+ 2 - 0
roles/openshift_control_plane/defaults/main.yml

@@ -156,3 +156,5 @@ l_core_api_list:
 - "security.openshift.io"
 - "template.openshift.io"
 - "user.openshift.io"
+
+openshift_volume_recycler_image: "{{ l_osm_registry_url | regex_replace('${component}' | regex_escape, 'recycler') }}"

+ 5 - 0
roles/openshift_control_plane/tasks/main.yml

@@ -33,6 +33,11 @@
     path: "/etc/origin/master"
     state: directory
 
+- name: Copy recyler pod to config directory
+  template:
+    src: "recycler_pod.yaml.j2"
+    dest: "/etc/origin/master/recycler_pod.yaml"
+
 - name: Create flexvolume directory when on atomic hosts
   file:
     state: directory

+ 12 - 0
roles/openshift_control_plane/tasks/upgrade.yml

@@ -80,3 +80,15 @@
     key: "kubernetesMasterConfig.apiServerArguments.runtime-config"
     value: "{{ runtime_config.result | join(',') | regex_replace('(?:,)*apis/settings\\.k8s\\.io/v1alpha1=true','') }}"
   when: runtime_config.result
+- name: Update controller-manager to have nfs recycler pod
+  yedit:
+    src: "{{ openshift.common.config_base }}/master/master-config.yaml"
+    key: "kubernetesMasterConfig.controllerArguments.pv-recycler-pod-template-filepath-nfs"
+    value: "/etc/origin/master/recycler_pod.yaml"
+    value_type: list
+- name: Update controller-manager to have hostpath recycler pod
+  yedit:
+    src: "{{ openshift.common.config_base }}/master/master-config.yaml"
+    key: "kubernetesMasterConfig.controllerArguments.pv-recycler-pod-template-filepath-hostpath"
+    value: "/etc/origin/master/recycler_pod.yaml"
+    value_type: list

+ 4 - 0
roles/openshift_control_plane/templates/master.yaml.v1.j2

@@ -83,6 +83,10 @@ kubernetesMasterConfig:
     - VolumeScheduling=true
 {% endif %}
   controllerArguments: {{ openshift.master.controller_args | default(None) | lib_utils_to_padded_yaml( level=2 ) }}
+    pv-recycler-pod-template-filepath-nfs:
+    - "/etc/origin/master/recycler_pod.yaml"
+    pv-recycler-pod-template-filepath-hostpath:
+    - "/etc/origin/master/recycler_pod.yaml"
 {% if openshift_is_atomic | bool %}
     flex-volume-plugin-dir:
     - "/etc/origin/kubelet-plugins/volume/exec"

+ 26 - 0
roles/openshift_control_plane/templates/recycler_pod.yaml.j2

@@ -0,0 +1,26 @@
+apiVersion: "v1"
+kind: "Pod"
+metadata:
+  name: "recyler-pod-"
+  namespace: "openshift-infra"
+spec:
+  activeDeadlineSeconds: 60
+  restartPolicy: "Never"
+  serviceAccountName: "pv-recycler-controller"
+  containers:
+    -
+      name: "recyler-container"
+      image: "{{ openshift_volume_recycler_image }}"
+      command:
+      - "/usr/bin/openshift-recycle"
+      args:
+      - "/scrub"
+      volumeMounts:
+        -
+          mountPath: "/scrub"
+          name: "vol"
+      securityContext:
+        runAsUser: 0
+  volumes:
+    -
+      name: "vol"

+ 1 - 0
roles/openshift_facts/library/openshift_facts.py

@@ -609,6 +609,7 @@ def build_controller_args(facts):
                                   'cloudprovider')
     if 'master' in facts:
         controller_args = {}
+
         if 'cloudprovider' in facts:
             if 'kind' in facts['cloudprovider']:
                 if facts['cloudprovider']['kind'] == 'aws':