1 instantiation of Container
Aspire.Hosting (1)
Dcp\Model\Container.cs (1)
607
var c = new
Container
(new ContainerSpec { Image = image });
249 references to Container
Aspire.Hosting (43)
Dcp\ContainerCreator.cs (14)
21
internal sealed class ContainerCreator : IObjectCreator<
Container
, ContainerNetworkEndpointContext>, IObjectCreator<ContainerExec, EmptyCreationContext>
75
public IEnumerable<RenderedModelResource<
Container
>> PrepareObjects()
80
var result = new List<RenderedModelResource<
Container
>>();
92
var
ctr =
Container
.Create(containerObjectInstance.Name, containerImageName);
142
var containerAppResource = new RenderedModelResource<
Container
>(container, ctr);
160
public bool IsReadyToCreate(RenderedModelResource<
Container
> resource, ContainerNetworkEndpointContext context)
165
public async Task CreateObjectAsync(RenderedModelResource<
Container
> cr, ContainerNetworkEndpointContext context, ILogger logger, IDcpObjectFactory factory, CancellationToken cancellationToken)
206
private async Task BuildAndCreateContainerAsync(RenderedModelResource<
Container
> cr, ILogger logger, IDcpObjectFactory factory, CancellationToken cToken)
210
var
dcpContainer = cr.DcpResource;
351
internal async Task CreateHostDependentContainerAsync(RenderedModelResource<
Container
> cr, ImmutableArray<HostResourceWithEndpoints> hostDependencies, ContainerNetworkEndpointContext context, IDcpObjectFactory factory, CancellationToken cToken)
370
BuildContainerConfiguration(RenderedModelResource<
Container
> cr, ILogger resourceLogger, CancellationToken cancellationToken)
613
private static async Task ApplyBuildArgumentsAsync(
Container
dcpContainerResource, IResource modelContainerResource, DistributedApplicationExecutionContext executionContext, ILogger logger, CancellationToken cancellationToken)
703
private static List<ContainerPortSpec> BuildContainerPorts(RenderedModelResource<
Container
> cr)
Dcp\DcpExecutor.cs (10)
164
RenderedModelResource<
Container
>[] containers;
346
Container
=> KnownResourceTypes.Container,
1071
Container
container => s => _resourceWatcher.SnapshotBuilder.ToSnapshot(container, s),
1107
Container
{ Spec.Start: false } => true,
1186
case
Container
c:
1189
var
cu = await _kubernetesService.GetAsync<
Container
>(c.Metadata.Name, cancellationToken: attemptCancellationToken).ConfigureAwait(false);
1257
case RenderedModelResource<
Container
> { DcpResource.Spec.Start: false } cr when !DcpModelUtilities.ShouldDeferCreateForExplicitStart(cr.ModelResource, cr.DcpResource.Spec.Start):
1269
case RenderedModelResource<
Container
> cr:
1270
await EnsureResourceDeletedAsync<
Container
>(resourceReference, cancellationToken).ConfigureAwait(false);
Dcp\DcpModelUtilities.cs (2)
160
foreach (var containerResource in appResources.OfType<RenderedModelResource<
Container
>>()
225
if (resource.DcpResource is not
Container
ctr || ctr.Spec.Networks is null)
Dcp\DcpResourceState.cs (1)
12
public readonly ConcurrentDictionary<string,
Container
> ContainersMap = [];
Dcp\DcpResourceWatcher.cs (9)
156
Task.Run(() => WatchKubernetesResourceAsync<
Container
>((t, r) => ProcessResourceChange(t, r, _resourceState.ContainersMap, Model.Dcp.ContainerKind, (c, s) => _snapshotBuilder.ToSnapshot(c, s)))),
202
if (_resourceState.ContainersMap.TryGetValue(entry.ResourceName, out
var
container))
548
return resource is
Container
{ LogsAvailable: true } ||
555
if (resource is
Container
container)
603
if (_resourceState.ContainersMap.TryGetValue(resourceName, out
var
container))
605
enumerable = new ResourceLogSource<
Container
>(_logger, _kubernetesService, container, follow: false);
652
Container
c when c.LogsAvailable => new ResourceLogSource<T>(_logger, _kubernetesService, resource, follow: true),
996
"Container" => _resourceState.ContainersMap.TryGetValue(resourceName, out
var
container) ? container : null,
1022
if (cr is
Container
container)
Dcp\Model\Container.cs (2)
605
public static
Container
Create(string name, string image)
607
var
c = new Container(new ContainerSpec { Image = image });
Dcp\Model\ContainerExec.cs (2)
12
/// The name of the <see cref="
Container
"/> resource (DCP model name, not the Docker/Podman name)
103
/// Represents a command to be executed in a given <see cref="
Container
"/> resource.
Dcp\Model\GroupVersion.cs (1)
37
Schema.Add<
Container
>(ContainerKind, "containers");
Dcp\ResourceSnapshotBuilder.cs (2)
23
public CustomResourceSnapshot ToSnapshot(
Container
container, CustomResourceSnapshot previous)
377
if (resource is
Container
container)
Aspire.Hosting.Containers.Tests (11)
WithDockerfileTests.cs (11)
217
var containers = await kubernetes.ListAsync<
Container
>();
219
var
container = Assert.Single(containers);
250
var containers = await kubernetes.ListAsync<
Container
>();
252
var
container = Assert.Single<
Container
>(containers);
487
var containers = await kubernetes.ListAsync<
Container
>();
489
var
container = Assert.Single<
Container
>(containers);
558
var containers = await kubernetes.ListAsync<
Container
>();
560
var
container = Assert.Single<
Container
>(containers);
Aspire.Hosting.Tests (195)
Dcp\DcpExecutorTests.cs (146)
417
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
441
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
463
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
784
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
890
Assert.Equal(3, kubernetesService.CreatedResources.OfType<
Container
>().Count());
1538
Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == emulator.Resource.Name);
1646
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1760
var
firstContainer = Assert.Single(GetCreatedContainersForResource(kubernetesService, "database"));
1958
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2062
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2116
if (obj is
Container
{ Status.State: ContainerState.FailedToStart } &&
2152
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2195
if (obj is
Container
{ Status.State: ContainerState.Running } &&
2202
if (obj is
Container
{ Status.State: ContainerState.FailedToStart } &&
2230
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2274
if (obj is
Container
{ Status.State: ContainerState.Exited } &&
2312
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2352
obj is
Container
container &&
2361
obj is
Container
{ Status.State: ContainerState.Exited } &&
2403
var
blockingContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "blocking");
2404
var
otherContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "other");
2451
if (obj is
Container
{ Status.State: ContainerState.Running } &&
2458
if (obj is
Container
{ Status.State: ContainerState.Exited } &&
2485
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2564
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2624
if (obj is
Container
{ Status.State: ContainerState.Running } &&
2649
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2711
if (obj is
Container
container &&
2768
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2869
if (obj is
Container
container &&
2924
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3027
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3144
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3197
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3253
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3302
if (obj is
Container
container &&
3362
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3471
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3512
if (obj is
Container
{ Status.State: ContainerState.FailedToStart } &&
3545
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3583
if (obj is
Container
container &&
3591
if (obj is
Container
{ Status.State: ContainerState.Exited } &&
3630
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3727
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3789
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3854
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4145
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4180
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4411
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4444
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4517
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4565
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4599
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4647
var
dcpCtr = kubernetesService.CreatedResources.OfType<
Container
>().Single(c => c.AppModelResourceName == "database");
4689
var
dcpCtr = kubernetesService.CreatedResources.OfType<
Container
>().Single(c => c.AppModelResourceName == "database");
4752
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4787
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4818
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4860
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4912
Assert.Equal(5, kubernetesService.CreatedResources.OfType<
Container
>().Count());
4913
var
implicitDefaultContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ImplicitDefault");
4916
var
explicitDefaultContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitDefault");
4919
var
explicitAlwaysContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitAlways");
4922
var
explicitMissingContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitMissing");
4925
var
explicitNeverContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitNever");
4959
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
5838
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
5991
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
7989
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
9662
var
dcpContainer = kubernetesService.CreatedResources
9663
.OfType<
Container
>()
9728
var
dcpContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9770
var
dcpContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9888
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9967
Assert.DoesNotContain(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9975
var
startedContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer" && c.Spec.Start == true);
10073
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
10085
Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
10162
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
10703
while (!kubernetesService.CreatedResources.OfType<
Container
>().Any(c => c.AppModelResourceName == container.Resource.Name))
10718
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
10721
var
waitingConsumingContainer = Assert.Single(createdContainers, c => c.AppModelResourceName == waitingConsumingEndpoint.Resource.Name);
10772
while (!kubernetesService.CreatedResources.OfType<
Container
>().Any(c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name))
10790
var
tunnelDependentDcpContainer = Assert.Single(createdResources.OfType<
Container
>(), c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name);
10841
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
10878
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
11122
private static List<
Container
> GetCreatedContainersForResource(TestKubernetesService kubernetesService, string appModelResourceName)
11125
.OfType<
Container
>()
11277
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
Dcp\KubernetesServiceTests.cs (11)
36
var listTask = service.ListAsync<
Container
>(cancellationToken: cts.Token);
57
var listTask = service.ListAsync<
Container
>(cancellationToken: cts.Token);
84
var listTask = service.ListAsync<
Container
>(cancellationToken: cts.Token);
107
var result = await service.ListAsync<
Container
>(cancellationToken: cts.Token);
112
() => service.ListAsync<
Container
>(cancellationToken: cts.Token));
128
Assert.Empty(await service.ListAsync<
Container
>(cancellationToken: cts.Token));
132
() => service.ListAsync<
Container
>(cancellationToken: cts.Token));
152
await using var watchEnumerator = service.WatchAsync<
Container
>(cancellationToken: watchCts.Token).GetAsyncEnumerator();
160
Assert.Empty(await service.ListAsync<
Container
>(cancellationToken: cts.Token));
186
await using var watchEnumerator = service.WatchAsync<
Container
>(cancellationToken: watchCts.Token).GetAsyncEnumerator();
213
var listTask = service.ListAsync<
Container
>(cancellationToken: cts.Token);
Dcp\ResourceSnapshotBuilderTests.cs (2)
23
var
container =
Container
.Create("container", "redis:latest");
Dcp\TestKubernetesService.cs (3)
254
if (resource is not
Container
container ||
433
if (res is
Container
ctr && result is
Container
cu)
DistributedApplicationTests.cs (33)
837
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
894
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
938
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
940
var
redisContainer = Assert.Single(list, c => c.Metadata.Name.StartsWith($"{testName}-redis"));
1013
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1145
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1185
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1229
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, containerPattern, r => r.Status?.State == ContainerState.Running, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1237
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, containerPattern, r => r.Status?.State == ContainerState.Exited, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1245
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, containerPattern, r => r.Status?.State == ContainerState.Running, token);
1311
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, $"{testName}-redis-{ReplicaIdRegex}-{suffix}", r => r.Status?.EffectiveEnv is not null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1523
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(s, $"{testName}-redis-{ReplicaIdRegex}-{suffix}",
1551
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1579
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1608
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1651
await foreach (var resource in s.WatchAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout))
1653
Assert.True(resource.Item2.Metadata.Annotations.TryGetValue(
Container
.ResourceNameAnnotation, out var value));
1867
var list = await s.ListAsync<
Container
>().DefaultTimeout();
1868
var
redisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redis-{ReplicaIdRegex}"));
1887
var
otherRedisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redisNoPort-{ReplicaIdRegex}"));
1945
var list = await s.ListAsync<
Container
>().DefaultTimeout();
1946
var
redisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redis-{ReplicaIdRegex}"));
1966
var
otherRedisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redisNoPort-{ReplicaIdRegex}"));
2063
var containers = await kubernetes.ListAsync<
Container
>(cancellationToken: token)
2065
var
dcpContainer = Assert.Single(containers, c => c.AppModelResourceName == container.Resource.Name);