Skip to content

Commit d7d9de5

Browse files
js185692derekbit
authored andcommitted
Watch for helper pod manifest updates
1 parent 64050fb commit d7d9de5

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

Diff for: deploy/local-path-storage.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ spec:
104104
valueFrom:
105105
fieldRef:
106106
fieldPath: metadata.namespace
107+
- name: CONFIG_MOUNT_PATH
108+
value: "/etc/config/"
107109
volumes:
108110
- name: config-volume
109111
configMap:

Diff for: main.go

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ var (
4848
DefaultProvisioningRetryCount = pvController.DefaultFailedProvisionThreshold
4949
FlagDeletionRetryCount = "deletion-retry-count"
5050
DefaultDeletionRetryCount = pvController.DefaultFailedDeleteThreshold
51+
EnvConfigMountPath = "CONFIG_MOUNT_PATH"
5152
)
5253

5354
func cmdNotFound(c *cli.Context, command string) {

Diff for: provisioner.go

+26
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,29 @@ func (p *LocalPathProvisioner) refreshConfig() error {
169169
return err
170170
}
171171

172+
func (p *LocalPathProvisioner) refreshHelperPod() error {
173+
p.configMutex.Lock()
174+
defer p.configMutex.Unlock()
175+
176+
helperPodFile, envExists := os.LookupEnv(EnvConfigMountPath)
177+
if !envExists {
178+
return nil
179+
}
180+
181+
helperPodFile = filepath.Join(helperPodFile, DefaultHelperPodFile)
182+
newHelperPod, err := loadFile(helperPodFile)
183+
if err != nil {
184+
return err
185+
}
186+
187+
p.helperPod, err = loadHelperPodFile(newHelperPod)
188+
if err != nil {
189+
return err
190+
}
191+
192+
return nil
193+
}
194+
172195
func (p *LocalPathProvisioner) watchAndRefreshConfig() {
173196
go func() {
174197
ticker := time.NewTicker(ConfigFileCheckInterval)
@@ -179,6 +202,9 @@ func (p *LocalPathProvisioner) watchAndRefreshConfig() {
179202
if err := p.refreshConfig(); err != nil {
180203
logrus.Errorf("failed to load the new config file: %v", err)
181204
}
205+
if err := p.refreshHelperPod(); err != nil {
206+
logrus.Errorf("failed to load the new helper pod manifest: %v", err)
207+
}
182208
case <-p.ctx.Done():
183209
logrus.Infof("stop watching config file")
184210
return

Diff for: util.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package main
33
import (
44
"encoding/json"
55
"fmt"
6-
"io/ioutil"
6+
"io"
77
"os"
88

99
v1 "k8s.io/api/core/v1"
@@ -16,7 +16,7 @@ func loadFile(filepath string) (string, error) {
1616
return "", err
1717
}
1818
defer f.Close()
19-
helperPodYaml, err := ioutil.ReadAll(f)
19+
helperPodYaml, err := io.ReadAll(f)
2020
if err != nil {
2121
return "", err
2222
}

0 commit comments

Comments
 (0)