internal/kubelet/environment.go (26 lines of code) (raw):

package kubelet import ( "fmt" "strings" "github.com/aws/eks-hybrid/internal/util" ) const ( kubeletEnvironmentFilePath = "/etc/eks/kubelet/environment" kubeletArgsEnvironmentName = "NODEADM_KUBELET_ARGS" ) // Write environment variables needed for kubelet runtime. This should be the // last method called on the kubelet object so that environment side effects of // other methods are properly recorded func (k *kubelet) writeKubeletEnvironment() error { // transform kubelet flags into a single string and write them to the // kubelet environment variable var kubeletFlags []string for flag, value := range k.flags { kubeletFlags = append(kubeletFlags, fmt.Sprintf("--%s=%s", flag, value)) } // append user-provided flags at the end to give them precedence kubeletFlags = append(kubeletFlags, k.nodeConfig.Spec.Kubelet.Flags...) // expose these flags via an environment variable scoped to nodeadm k.environment[kubeletArgsEnvironmentName] = strings.Join(kubeletFlags, " ") // write additional environment variables var kubeletEnvironment []string for eKey, eValue := range k.environment { kubeletEnvironment = append(kubeletEnvironment, fmt.Sprintf(`%s="%s"`, eKey, eValue)) } return util.WriteFileWithDir(kubeletEnvironmentFilePath, []byte(strings.Join(kubeletEnvironment, "\n")), kubeletConfigPerm) } // Add values to the environment variables map in a terse manner func (k *kubelet) setEnv(envName, envArg string) { k.environment[envName] = envArg }