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

Watch for helper pod manifest updates

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