diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-08-19 13:33:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-19 13:33:15 +0200 |
commit | 98dee275d04dafa087db12bc3f0593a078039cfb (patch) | |
tree | 51a0fbeae3dd23c6c29c4b74e6a6503557e74a39 /libpod | |
parent | 438cbf4c8960db0b59a25a3fb38a778e24a69a40 (diff) | |
parent | 7aefc1ac33ba153f6177e9fe3c4da886de49a9e2 (diff) | |
download | podman-98dee275d04dafa087db12bc3f0593a078039cfb.tar.gz podman-98dee275d04dafa087db12bc3f0593a078039cfb.tar.bz2 podman-98dee275d04dafa087db12bc3f0593a078039cfb.zip |
Merge pull request #3836 from chenzhiwei/hostname
Allow customizing pod hostname
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/options.go | 18 | ||||
-rw-r--r-- | libpod/pod.go | 2 | ||||
-rw-r--r-- | libpod/runtime_pod_infra_linux.go | 4 | ||||
-rw-r--r-- | libpod/runtime_pod_linux.go | 4 |
4 files changed, 26 insertions, 2 deletions
diff --git a/libpod/options.go b/libpod/options.go index 1e7877dac..d2a67e38c 100644 --- a/libpod/options.go +++ b/libpod/options.go @@ -1497,6 +1497,24 @@ func WithPodName(name string) PodCreateOption { } } +// WithPodHostname sets the hostname of the pod. +func WithPodHostname(hostname string) PodCreateOption { + return func(pod *Pod) error { + if pod.valid { + return define.ErrPodFinalized + } + + // Check the hostname against a regex + if !nameRegex.MatchString(hostname) { + return regexError + } + + pod.config.Hostname = hostname + + return nil + } +} + // WithPodLabels sets the labels of a pod. func WithPodLabels(labels map[string]string) PodCreateOption { return func(pod *Pod) error { diff --git a/libpod/pod.go b/libpod/pod.go index 60626bfd7..3b9bb9c60 100644 --- a/libpod/pod.go +++ b/libpod/pod.go @@ -36,6 +36,8 @@ type PodConfig struct { // Namespace the pod is in Namespace string `json:"namespace,omitempty"` + Hostname string `json:"hostname,omitempty"` + // Labels contains labels applied to the pod Labels map[string]string `json:"labels"` // CgroupParent contains the pod's CGroup parent diff --git a/libpod/runtime_pod_infra_linux.go b/libpod/runtime_pod_infra_linux.go index 5387eb587..ad6662f03 100644 --- a/libpod/runtime_pod_infra_linux.go +++ b/libpod/runtime_pod_infra_linux.go @@ -31,8 +31,8 @@ func (r *Runtime) makeInfraContainer(ctx context.Context, p *Pod, imgName, imgID return nil, err } - // Set Pod hostname as Pod name - g.Config.Hostname = p.config.Name + // Set Pod hostname + g.Config.Hostname = p.config.Hostname isRootless := rootless.IsRootless() diff --git a/libpod/runtime_pod_linux.go b/libpod/runtime_pod_linux.go index f38e6e7c1..073c5054d 100644 --- a/libpod/runtime_pod_linux.go +++ b/libpod/runtime_pod_linux.go @@ -52,6 +52,10 @@ func (r *Runtime) NewPod(ctx context.Context, options ...PodCreateOption) (_ *Po pod.config.Name = name } + if pod.config.Hostname == "" { + pod.config.Hostname = pod.config.Name + } + // Allocate a lock for the pod lock, err := r.lockManager.AllocateLock() if err != nil { |