// Determined whether the specified pod is allowed to use host networking func allowHostPID(pod *api.Pod) (bool, error) { podSource, err := getPodSource(pod) if err != nil { return false, err } for _, source := range capabilities.Get().PrivilegedSources.HostPIDSources { if source == podSource { return true, nil } } return false, nil }
// Check whether we have the capabilities to run the specified pod. func canRunPod(pod *api.Pod) error { if pod.Spec.HostNetwork { allowed, err := allowHostNetwork(pod) if err != nil { return err } if !allowed { return fmt.Errorf("pod with UID %q specified host networking, but is disallowed", pod.UID) } } if pod.Spec.HostPID { allowed, err := allowHostPID(pod) if err != nil { return err } if !allowed { return fmt.Errorf("pod with UID %q specified host PID, but is disallowed", pod.UID) } } if pod.Spec.HostIPC { allowed, err := allowHostIPC(pod) if err != nil { return err } if !allowed { return fmt.Errorf("pod with UID %q specified host ipc, but is disallowed", pod.UID) } } if !capabilities.Get().AllowPrivileged { for _, container := range pod.Spec.Containers { if securitycontext.HasPrivilegedRequest(&container) { return fmt.Errorf("pod with UID %q specified privileged container, but is disallowed", pod.UID) } } } return nil }
func newThrottledUpgradeAwareProxyHandler(location *url.URL, transport http.RoundTripper, wrapTransport, upgradeRequired bool) *genericrest.UpgradeAwareProxyHandler { handler := genericrest.NewUpgradeAwareProxyHandler(location, transport, wrapTransport, upgradeRequired) handler.MaxBytesPerSec = capabilities.Get().PerConnectionBandwidthLimitBytesPerSec return handler }