Exemple #1
0
        /// <inheritdoc/>
        public virtual ICustomResourceEventWatcher <TResource> CreateController <TResource>(ICustomResourceDefinition resourceDefinition, CustomResourceEventDelegate <TResource> eventHandler, string ns = null)
            where TResource : ICustomResource
        {
            ICustomResourceEventWatcher <TResource> controller = ActivatorUtilities.CreateInstance <CustomResourceEventWatcher <TResource> >(this.ServiceProvider, resourceDefinition, eventHandler, ns);

            return(controller);
        }
 /// <summary>
 /// Initializes a new <see cref="ICustomResourceEventWatcher{TResource}"/>.
 /// </summary>
 /// <param name="logger">The service used to perform logging</param>
 /// <param name="kubernetesClient">The service used to communicate with Kubernetes.</param>
 /// <param name="resourceDefinition">The <see cref="ICustomResourceDefinition"/> of the <see cref="ICustomResource"/> type to to listen the Kubernetes events for.</param>
 /// <param name="namespaceProperty">The namespace in which to listen for Kubernetes events for the specified <see cref="ICustomResource"/> type. If null or empty, the controller will listen for cluster-wide events instead.</param>
 /// <param name="eventHandler">The <see cref="CustomResourceEventDelegate{TResource}"/> to invoke whenever a Kubernetes event for the specified <see cref="ICustomResource"/> type is received.</param>
 public CustomResourceEventWatcher(ILogger <CustomResourceEventWatcher <TResource> > logger, IKubernetes kubernetesClient, ICustomResourceDefinition resourceDefinition, string namespaceProperty, CustomResourceEventDelegate <TResource> eventHandler)
 {
     this.Logger             = logger;
     this.KubernetesClient   = kubernetesClient;
     this.ResourceDefinition = resourceDefinition;
     this.Namespace          = namespaceProperty;
     this.EventHandler       = eventHandler;
 }