Skip to content
Snippets Groups Projects
Commit d7d9de52 authored by Jeremy Scott's avatar Jeremy Scott Committed by Derek Su
Browse files

Watch for helper pod manifest updates

parent 64050fbf
No related branches found
No related tags found
No related merge requests found
......@@ -104,6 +104,8 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONFIG_MOUNT_PATH
value: "/etc/config/"
volumes:
- name: config-volume
configMap:
......
......@@ -48,6 +48,7 @@ var (
DefaultProvisioningRetryCount = pvController.DefaultFailedProvisionThreshold
FlagDeletionRetryCount = "deletion-retry-count"
DefaultDeletionRetryCount = pvController.DefaultFailedDeleteThreshold
EnvConfigMountPath = "CONFIG_MOUNT_PATH"
)
func cmdNotFound(c *cli.Context, command string) {
......
......@@ -169,6 +169,29 @@ func (p *LocalPathProvisioner) refreshConfig() error {
return err
}
func (p *LocalPathProvisioner) refreshHelperPod() error {
p.configMutex.Lock()
defer p.configMutex.Unlock()
helperPodFile, envExists := os.LookupEnv(EnvConfigMountPath)
if !envExists {
return nil
}
helperPodFile = filepath.Join(helperPodFile, DefaultHelperPodFile)
newHelperPod, err := loadFile(helperPodFile)
if err != nil {
return err
}
p.helperPod, err = loadHelperPodFile(newHelperPod)
if err != nil {
return err
}
return nil
}
func (p *LocalPathProvisioner) watchAndRefreshConfig() {
go func() {
ticker := time.NewTicker(ConfigFileCheckInterval)
......@@ -179,6 +202,9 @@ func (p *LocalPathProvisioner) watchAndRefreshConfig() {
if err := p.refreshConfig(); err != nil {
logrus.Errorf("failed to load the new config file: %v", err)
}
if err := p.refreshHelperPod(); err != nil {
logrus.Errorf("failed to load the new helper pod manifest: %v", err)
}
case <-p.ctx.Done():
logrus.Infof("stop watching config file")
return
......
......@@ -3,7 +3,7 @@ package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"io"
"os"
v1 "k8s.io/api/core/v1"
......@@ -16,7 +16,7 @@ func loadFile(filepath string) (string, error) {
return "", err
}
defer f.Close()
helperPodYaml, err := ioutil.ReadAll(f)
helperPodYaml, err := io.ReadAll(f)
if err != nil {
return "", err
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment