func ExtractIngress(ingress *apinetworkingv1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {
	return extractIngress(ingress, fieldManager, "")
}
ExtractIngress extracts the applied configuration owned by fieldManager from
ingress. If no managedFields are found in ingress for fieldManager, a
IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),
APIVersion and Kind populated. It is possible that no managed fields were found for because other
field managers have taken ownership of all the fields previously owned by fieldManager, or because
the fieldManager never owned fields any fields.
ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.
ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.
Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously
applied if another fieldManager has updated or force applied any of the previously applied fields.
Experimental!
package v1
import (
	apinetworkingv1 "k8s.io/api/networking/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	types "k8s.io/apimachinery/pkg/types"
	managedfields "k8s.io/apimachinery/pkg/util/managedfields"
	internal "k8s.io/client-go/applyconfigurations/internal"
	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
)
type IngressApplyConfiguration struct {
	v1.TypeMetaApplyConfiguration    `json:",inline"`
	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
	Spec                             *IngressSpecApplyConfiguration   `json:"spec,omitempty"`
	Status                           *IngressStatusApplyConfiguration `json:"status,omitempty"`
}
func Ingress(name, namespace string) *IngressApplyConfiguration {
	b := &IngressApplyConfiguration{}
	b.WithName(name)
	b.WithNamespace(namespace)
	b.WithKind("Ingress")
	b.WithAPIVersion("networking.k8s.io/v1")
	return b
}