13
13
using KubeOps . Abstractions . Finalizer ;
14
14
using KubeOps . Abstractions . Queue ;
15
15
using KubeOps . KubernetesClient ;
16
+ using KubeOps . Operator . Client ;
16
17
using KubeOps . Operator . Finalizer ;
17
18
using KubeOps . Operator . Queue ;
18
19
using KubeOps . Operator . Watcher ;
@@ -35,10 +36,17 @@ public OperatorBuilder(IServiceCollection services, OperatorSettings settings)
35
36
36
37
public IServiceCollection Services { get ; }
37
38
38
- public IOperatorBuilder AddEntity < TEntity > ( EntityMetadata metadata )
39
+ public IOperatorBuilder AddEntityClient < TEntity > ( EntityMetadata metadata )
39
40
where TEntity : IKubernetesObject < V1ObjectMeta >
40
41
{
41
- Services . AddTransient < IKubernetesClient < TEntity > > ( _ => new KubernetesClient < TEntity > ( metadata ) ) ;
42
+ Services . AddTransient < IKubernetesClient < TEntity > > ( _ => KubernetesClientFactory . Create < TEntity > ( metadata ) ) ;
43
+ return this ;
44
+ }
45
+
46
+ public IOperatorBuilder AddEntityClient < TEntity > ( )
47
+ where TEntity : IKubernetesObject < V1ObjectMeta >
48
+ {
49
+ Services . AddTransient < IKubernetesClient < TEntity > > ( _ => KubernetesClientFactory . Create < TEntity > ( ) ) ;
42
50
return this ;
43
51
}
44
52
@@ -62,11 +70,6 @@ public IOperatorBuilder AddController<TImplementation, TEntity>()
62
70
return this ;
63
71
}
64
72
65
- public IOperatorBuilder AddControllerWithEntity < TImplementation , TEntity > ( EntityMetadata metadata )
66
- where TImplementation : class , IEntityController < TEntity >
67
- where TEntity : IKubernetesObject < V1ObjectMeta > =>
68
- AddController < TImplementation , TEntity > ( ) . AddEntity < TEntity > ( metadata ) ;
69
-
70
73
public IOperatorBuilder AddFinalizer < TImplementation , TEntity > ( string identifier )
71
74
where TImplementation : class , IEntityFinalizer < TEntity >
72
75
where TEntity : IKubernetesObject < V1ObjectMeta >
@@ -86,7 +89,8 @@ private static Func<IServiceProvider, EntityFinalizerAttacher<TImplementation, T
86
89
=> services => async entity =>
87
90
{
88
91
var logger = services . GetService < ILogger < EntityFinalizerAttacher < TImplementation , TEntity > > > ( ) ;
89
- var client = services . GetRequiredService < IKubernetesClient < TEntity > > ( ) ;
92
+ using var client = services . GetService < IKubernetesClient < TEntity > > ( ) ??
93
+ KubernetesClientFactory . Create < TEntity > ( ) ;
90
94
91
95
logger ? . LogTrace (
92
96
"""Try to add finalizer "{finalizer}" on entity "{kind}/{name}".""" ,
@@ -206,14 +210,13 @@ private static Func<IServiceProvider, EventPublisher> CreateEventPublisher()
206
210
private void AddOperatorBase ( )
207
211
{
208
212
Services . AddSingleton ( _settings ) ;
209
- Services . AddTransient < IKubernetesClient < Corev1Event > > ( _ => new KubernetesClient < Corev1Event > ( new (
210
- Corev1Event . KubeKind , Corev1Event . KubeApiVersion , Plural : Corev1Event . KubePluralName ) ) ) ;
213
+
214
+ Services . AddTransient ( _ => KubernetesClientFactory . Create < Corev1Event > ( ) ) ;
211
215
Services . AddTransient ( CreateEventPublisher ( ) ) ;
212
216
213
217
if ( _settings . EnableLeaderElection )
214
218
{
215
- using var client = new KubernetesClient < Corev1Event > ( new (
216
- Corev1Event . KubeKind , Corev1Event . KubeApiVersion , Plural : Corev1Event . KubePluralName ) ) ;
219
+ using var client = KubernetesClientFactory . Create < Corev1Event > ( ) ;
217
220
218
221
var elector = new LeaderElector (
219
222
new LeaderElectionConfig (
0 commit comments