func setAgentCapabilities()

in agent/agent.go [193:219]


func setAgentCapabilities() error {
	capSet := cap.GetProc()
	if hasNetAdmin, _ := capSet.GetFlag(cap.Permitted, cap.NET_ADMIN); hasNetAdmin {
		log.Infof("Found NET_ADMIN capability in Agent's Permitted Flag, raising it in Inheritable and Ambient flags for Envoy to inherit.")
		if hasSetPCap, _ := capSet.GetFlag(cap.Permitted, cap.SETPCAP); !hasSetPCap {
			return fmt.Errorf("agent has NET_ADMIN capability but, not SETPCAP in its Permitted Flag. Envoy will not be started with NET_ADMIN capability")
		}
		iabVector := cap.IABGetProc()
		err := iabVector.SetVector(cap.Inh, true, cap.NET_ADMIN)
		if err != nil {
			log.Errorf("Failed to set NET_ADMIN in Agent's Inheritable capability vector: %v", err)
			return err
		}
		err = iabVector.SetVector(cap.Amb, true, cap.NET_ADMIN)
		if err != nil {
			log.Errorf("Failed to set NET_ADMIN in Agent's Ambient capability vector: %v", err)
			return err
		}

		err = iabVector.SetProc()
		if err != nil {
			log.Errorf("Failed to set NET_ADMIN capability in Agent's Inheritable and Ambient set: %v", err)
			return err
		}
	}
	return nil
}