1 type derived from CustomResource
Aspire.Hosting (1)
Dcp\Model\ModelCommon.cs (1)
140
internal abstract class CustomResource<TSpec, TStatus> :
CustomResource
115 references to CustomResource
Aspire.Hosting (80)
Dcp\AppResource.cs (5)
13
public
CustomResource
DcpResource { get; }
17
public AppResource(
CustomResource
dcpResource)
30
var
dr = DcpResource;
31
var
odr = other.DcpResource;
55
public RenderedModelResource(IResource modelResource,
CustomResource
dcpResource): base(dcpResource)
Dcp\DcpExecutor.cs (48)
385
async Task WatchKubernetesResourceAsync<T>(Func<WatchEventType, T, Task> handler) where T :
CustomResource
, IKubernetesStaticMetadata
423
private async Task ProcessResourceChange<T>(WatchEventType watchEventType, T resource, ConcurrentDictionary<string, T> resourceByName, string resourceKind, Func<T, CustomResourceSnapshot, CustomResourceSnapshot> snapshotFactory) where T :
CustomResource
493
else if (resource.Metadata.Annotations?.TryGetValue(
CustomResource
.ServiceProducerAnnotation, out var servicesProducedAnnotationJson) == true)
545
private static string GetResourceType<T>(T resource, IResource appModelResource) where T :
CustomResource
556
private static ResourceStatus GetResourceStatus(
CustomResource
resource)
628
private void StartLogStream<T>(T resource) where T :
CustomResource
, IKubernetesStaticMetadata
719
CustomResource
? cr = resourceKind switch
756
where T :
CustomResource
865
sr.Metadata.Annotations?.TryGetValue(
CustomResource
.ContainerTunnelInstanceName, out var _) is true &&
866
sr.Metadata.Annotations?.TryGetValue(
CustomResource
.ContainerNetworkAnnotation, out var containerNetwork) is true &&
883
PrimaryServiceName: r.DcpResource.Metadata.Annotations?.TryGetValue(
CustomResource
.PrimaryServiceNameAnnotation, out var psn) == true ? psn : null)
897
private async Task CreateAllDcpObjectsAsync<RT>(CancellationToken cancellationToken) where RT :
CustomResource
, IKubernetesStaticMetadata
990
ResourceName: r.DcpResource.Metadata.Annotations?.TryGetValue(
CustomResource
.ResourceNameAnnotation, out var resourceName) == true ? resourceName : null,
991
EndpointName: r.DcpResource.Metadata.Annotations?.TryGetValue(
CustomResource
.EndpointNameAnnotation, out var endpointName) == true ? endpointName : null,
992
TunnelInstanceName: r.DcpResource.Metadata.Annotations?.TryGetValue(
CustomResource
.ContainerTunnelInstanceName, out var tunnelInstanceName) == true ? tunnelInstanceName : null,
993
ContainerNetworkName: r.DcpResource.Metadata.Annotations?.TryGetValue(
CustomResource
.ContainerNetworkAnnotation, out var containerNetworkName) == true ? containerNetworkName : null
1116
svc.Annotate(
CustomResource
.ResourceNameAnnotation, sp.ModelResource.Name);
1117
svc.Annotate(
CustomResource
.EndpointNameAnnotation, endpoint.Name);
1222
svc.Annotate(
CustomResource
.ResourceNameAnnotation, re.Resource.Name); // Resource that implements the service behind the Endpoint.
1223
svc.Annotate(
CustomResource
.EndpointNameAnnotation, endpoint.Name);
1224
svc.Annotate(
CustomResource
.ContainerNetworkAnnotation, tunnelProxy?.Spec?.ContainerNetworkName ?? KnownNetworkIdentifiers.DefaultAspireContainerNetwork.Value);
1225
svc.Annotate(
CustomResource
.PrimaryServiceNameAnnotation, serverSvc.DcpResource.Metadata.Name);
1228
svc.Annotate(
CustomResource
.ContainerTunnelInstanceName, tunnelProxy?.Metadata?.Name ?? "");
1267
containerExec.Annotate(
CustomResource
.OtelServiceNameAnnotation, containerExecutable.Name);
1268
containerExec.Annotate(
CustomResource
.OtelServiceInstanceIdAnnotation, exeInstance.Suffix);
1269
containerExec.Annotate(
CustomResource
.ResourceNameAnnotation, containerExecutable.Name);
1293
exe.Annotate(
CustomResource
.OtelServiceNameAnnotation, executable.Name);
1294
exe.Annotate(
CustomResource
.OtelServiceInstanceIdAnnotation, exeInstance.Suffix);
1295
exe.Annotate(
CustomResource
.ResourceNameAnnotation, executable.Name);
1341
exeSpec.Annotate(
CustomResource
.OtelServiceNameAnnotation, project.Name);
1342
exeSpec.Annotate(
CustomResource
.OtelServiceInstanceIdAnnotation, exeInstance.Suffix);
1343
exeSpec.Annotate(
CustomResource
.ResourceNameAnnotation, project.Name);
1344
exeSpec.Annotate(
CustomResource
.ResourceReplicaCount, replicas.ToString(CultureInfo.InvariantCulture));
1345
exeSpec.Annotate(
CustomResource
.ResourceReplicaIndex, i.ToString(CultureInfo.InvariantCulture));
1412
exeSpec.SetAnnotationAsObjectList(
CustomResource
.ResourceProjectArgsAnnotation, projectArgs);
1435
annotationHolder.Annotate(
CustomResource
.ResourceStateAnnotation, state);
1589
if (er.DcpResource.TryGetAnnotationAsObjectList<string>(
CustomResource
.ResourceProjectArgsAnnotation, out var projectArgs) && projectArgs.Count > 0)
1697
er.DcpResource.SetAnnotationAsObjectList(
CustomResource
.ResourceAppArgsAnnotation, launchArgs.Select(a => new AppLaunchArgumentAnnotation(a.Value, isSensitive: a.IsSensitive)));
1798
ctr.Annotate(
CustomResource
.ResourceNameAnnotation, container.Name);
1799
ctr.Annotate(
CustomResource
.OtelServiceNameAnnotation, container.Name);
1800
ctr.Annotate(
CustomResource
.OtelServiceInstanceIdAnnotation, containerObjectInstance.Suffix);
2087
dcpContainerResource.SetAnnotationAsObjectList(
CustomResource
.ResourceAppArgsAnnotation, configuration.Arguments.Select(a => new AppLaunchArgumentAnnotation(a.Value, isSensitive: a.IsSensitive)));
2248
dcpResource.AnnotateAsObjectList(
CustomResource
.ServiceProducerAnnotation, spAnn);
2252
static bool HasMultipleReplicas(
CustomResource
resource)
2254
if (resource is Executable exe && exe.Metadata.Annotations.TryGetValue(
CustomResource
.ResourceReplicaCount, out var value) && int.TryParse(value, CultureInfo.InvariantCulture, out var replicas) && replicas > 1)
2295
private static V1Patch CreatePatch<T>(T obj, Action<T> change) where T :
CustomResource
2313
var
dcpResource = ((RenderedModelResource)resourceReference).DcpResource;
2437
async Task EnsureResourceDeletedAsync<T>(string resourceName) where T :
CustomResource
, IKubernetesStaticMetadata
Dcp\KubernetesService.cs (15)
38
where T :
CustomResource
, IKubernetesStaticMetadata;
40
where T :
CustomResource
, IKubernetesStaticMetadata;
42
where T :
CustomResource
, IKubernetesStaticMetadata;
44
where T :
CustomResource
, IKubernetesStaticMetadata;
46
where T :
CustomResource
, IKubernetesStaticMetadata;
50
where T :
CustomResource
, IKubernetesStaticMetadata;
74
) where T :
CustomResource
, IKubernetesStaticMetadata;
95
where T :
CustomResource
, IKubernetesStaticMetadata
126
where T :
CustomResource
, IKubernetesStaticMetadata
159
where T :
CustomResource
, IKubernetesStaticMetadata
194
where T :
CustomResource
, IKubernetesStaticMetadata
224
where T :
CustomResource
, IKubernetesStaticMetadata
258
where T :
CustomResource
, IKubernetesStaticMetadata
313
long? skip = null) where T :
CustomResource
, IKubernetesStaticMetadata
440
private static string GetResourceFor<T>() where T :
CustomResource
Dcp\Model\ExecutableReplicaSet.cs (2)
41
CustomResource
.AnnotateAsObjectList(Annotations, annotationName, value);
46
return
CustomResource
.TryGetAnnotationAsObjectList(Annotations, annotationName, out list);
Dcp\Model\ModelCommon.cs (1)
155
where T :
CustomResource
Dcp\Model\Schema.cs (2)
10
public void Add<T>(string kind, string resource) where T :
CustomResource
15
public bool TryGet<T>(out (string Kind, string Resource) kindWithResource) where T :
CustomResource
Dcp\ResourceLogSource.cs (1)
19
where TResource :
CustomResource
, IKubernetesStaticMetadata
Dcp\ResourceSnapshotBuilder.cs (4)
206
private static (ImmutableArray<string> Args, ImmutableArray<int>? ArgsAreSensitive, bool IsSensitive)? GetLaunchArgs(
CustomResource
resource)
208
if (!resource.TryGetAnnotationAsObjectList(
CustomResource
.ResourceAppArgsAnnotation, out List<AppLaunchArgumentAnnotation>? launchArgumentAnnotations))
231
private ImmutableArray<UrlSnapshot> GetUrls(
CustomResource
resource, string? resourceState)
273
private static ImmutableArray<VolumeSnapshot> GetVolumes(
CustomResource
resource)
OtlpConfigurationExtensions.cs (2)
78
context.EnvironmentVariables["OTEL_RESOURCE_ATTRIBUTES"] = "service.instance.id={{- index .Annotations \"" +
CustomResource
.OtelServiceInstanceIdAnnotation + "\" -}}";
79
context.EnvironmentVariables["OTEL_SERVICE_NAME"] = "{{- index .Annotations \"" +
CustomResource
.OtelServiceNameAnnotation + "\" -}}";
Aspire.Hosting.Tests (35)
Dcp\DcpExecutorTests.cs (20)
164
Assert.True(exe.TryGetAnnotationAsObjectList<AppLaunchArgumentAnnotation>(
CustomResource
.ResourceAppArgsAnnotation, out var argAnnotations));
207
Assert.True(exe1.TryGetAnnotationAsObjectList<AppLaunchArgumentAnnotation>(
CustomResource
.ResourceAppArgsAnnotation, out var argAnnotations1));
225
Assert.True(exe2.TryGetAnnotationAsObjectList<AppLaunchArgumentAnnotation>(
CustomResource
.ResourceAppArgsAnnotation, out var argAnnotations2));
244
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
276
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
308
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
341
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
398
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
432
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
466
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
557
Assert.Equal(expectedName, exe.Metadata.Annotations[
CustomResource
.OtelServiceNameAnnotation]);
870
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
915
Assert.True(dcpExe.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
948
Assert.True(dcpCtr.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
983
Assert.True(dcpCtr.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
1064
Assert.True(dcpCtr.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
1100
Assert.True(dcpCtr.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
1137
Assert.True(dcpCtr.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
1174
Assert.True(dcpCtr.TryGetAnnotationAsObjectList<ServiceProducerAnnotation>(
CustomResource
.ServiceProducerAnnotation, out var spAnnList));
1343
var serviceProducers = JsonSerializer.Deserialize<List<ServiceProducerAnnotation>>(annotations[
CustomResource
.ServiceProducerAnnotation]);
Dcp\TestKubernetesService.cs (13)
24
public ConcurrentQueue<
CustomResource
> CreatedResources { get; } = [];
27
private readonly List<Channel<(WatchEventType,
CustomResource
)>> _watchChannels = [];
28
private readonly Func<
CustomResource
, string, Stream> _startStream;
32
public TestKubernetesService(Func<
CustomResource
, string, Stream>? startStream = null, bool ignoreDeletes = false)
38
public Task<T> GetAsync<T>(string name, string? namespaceParameter = null, CancellationToken _ = default) where T :
CustomResource
, IKubernetesStaticMetadata
59
public Task<T> CreateAsync<T>(T obj, CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata
93
public void PushResourceModified(
CustomResource
resource)
104
public async Task<T> DeleteAsync<T>(string name, string? namespaceParameter = null, CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata
124
public Task<List<T>> ListAsync<T>(string? namespaceParameter = null, CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata
132
public async IAsyncEnumerable<(WatchEventType, T)> WatchAsync<T>(string? namespaceParameter = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata
134
var chan = Channel.CreateUnbounded<(WatchEventType,
CustomResource
)>();
175
) where T :
CustomResource
, IKubernetesStaticMetadata
180
public Task<T> PatchAsync<T>(T obj, V1Patch patch, CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata
Helpers\KubernetesHelper.cs (2)
13
public static async Task<T> GetResourceByNameAsync<T>(IKubernetesService kubernetes, string resourceName, string resourceNameSuffix, Func<T, bool> ready, CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata
28
public static async Task<T> GetResourceByNameMatchAsync<T>(IKubernetesService kubernetes, string resourceNamePattern, Func<T, bool> ready, CancellationToken cancellationToken = default) where T :
CustomResource
, IKubernetesStaticMetadata