1 instantiation of Container
Aspire.Hosting (1)
Dcp\Model\Container.cs (1)
607
var c = new
Container
(new ContainerSpec { Image = image });
246 references to Container
Aspire.Hosting (43)
Dcp\ContainerCreator.cs (14)
46
internal sealed class ContainerCreator : IObjectCreator<
Container
, ContainerCreationContext>, IObjectCreator<ContainerExec, EmptyCreationContext>, IDisposable
134
public IEnumerable<RenderedModelResource<
Container
>> PrepareObjects()
139
var result = new List<RenderedModelResource<
Container
>>();
151
var
ctr =
Container
.Create(containerObjectInstance.Name, containerImageName);
201
var containerAppResource = new RenderedModelResource<
Container
>(container, ctr);
252
public bool IsReadyToCreate(RenderedModelResource<
Container
> resource, ContainerCreationContext cctx)
257
public async Task CreateObjectAsync(RenderedModelResource<
Container
> cr, ContainerCreationContext cctx, ILogger logger, IDcpObjectFactory factory, CancellationToken cancellationToken)
298
private async Task BuildAndCreateContainerAsync(RenderedModelResource<
Container
> cr, ILogger logger, IDcpObjectFactory factory, CancellationToken cToken)
302
var
dcpContainer = cr.DcpResource;
663
internal async Task CreateHostDependentContainerAsync(RenderedModelResource<
Container
> cr, ImmutableArray<HostResourceWithEndpoints> hostDependencies, ContainerCreationContext cctx, IDcpObjectFactory factory, CancellationToken cToken)
686
BuildContainerConfiguration(RenderedModelResource<
Container
> cr, ILogger resourceLogger, CancellationToken cancellationToken)
929
private static async Task ApplyBuildArgumentsAsync(
Container
dcpContainerResource, IResource modelContainerResource, DistributedApplicationExecutionContext executionContext, ILogger logger, CancellationToken cancellationToken)
1019
private static List<ContainerPortSpec> BuildContainerPorts(RenderedModelResource<
Container
> cr)
Dcp\DcpExecutor.cs (10)
172
RenderedModelResource<
Container
>[] containers;
378
Container
=> KnownResourceTypes.Container,
1031
Container
container => s => _resourceWatcher.SnapshotBuilder.ToSnapshot(container, s),
1067
Container
{ Spec.Start: false } => true,
1146
case
Container
c:
1149
var
cu = await _kubernetesService.GetAsync<
Container
>(c.Metadata.Name, cancellationToken: attemptCancellationToken).ConfigureAwait(false);
1217
case RenderedModelResource<
Container
> { DcpResource.Spec.Start: false } cr when !DcpModelUtilities.ShouldDeferCreateForExplicitStart(cr.ModelResource, cr.DcpResource.Spec.Start):
1229
case RenderedModelResource<
Container
> cr:
1230
await EnsureResourceDeletedAsync<
Container
>(resourceReference, cancellationToken).ConfigureAwait(false);
Dcp\DcpModelUtilities.cs (2)
155
foreach (var containerResource in appResources.OfType<RenderedModelResource<
Container
>>()
220
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)
127
Task.Run(() => WatchKubernetesResourceAsync<
Container
>((t, r) => ProcessResourceChange(t, r, _resourceState.ContainersMap, Model.Dcp.ContainerKind, (c, s) => _snapshotBuilder.ToSnapshot(c, s)))),
173
if (_resourceState.ContainersMap.TryGetValue(entry.ResourceName, out
var
container))
494
return resource is
Container
{ LogsAvailable: true } ||
501
if (resource is
Container
container)
549
if (_resourceState.ContainersMap.TryGetValue(resourceName, out
var
container))
551
enumerable = new ResourceLogSource<
Container
>(_logger, _kubernetesService, container, follow: false);
598
Container
c when c.LogsAvailable => new ResourceLogSource<T>(_logger, _kubernetesService, resource, follow: true),
894
"Container" => _resourceState.ContainersMap.TryGetValue(resourceName, out
var
container) ? container : null,
910
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)
383
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 (192)
Dcp\DcpExecutorTests.cs (144)
64
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
88
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
110
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
431
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
537
Assert.Equal(3, kubernetesService.CreatedResources.OfType<
Container
>().Count());
1134
Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == emulator.Resource.Name);
1242
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1356
var
firstContainer = Assert.Single(GetCreatedContainersForResource(kubernetesService, "database"));
1509
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1613
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1667
if (obj is
Container
{ Status.State: ContainerState.FailedToStart } &&
1703
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1746
if (obj is
Container
{ Status.State: ContainerState.Running } &&
1753
if (obj is
Container
{ Status.State: ContainerState.FailedToStart } &&
1781
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1825
if (obj is
Container
{ Status.State: ContainerState.Exited } &&
1863
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
1903
obj is
Container
container &&
1912
obj is
Container
{ Status.State: ContainerState.Exited } &&
1954
var
blockingContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "blocking");
1955
var
otherContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "other");
2002
if (obj is
Container
{ Status.State: ContainerState.Running } &&
2009
if (obj is
Container
{ Status.State: ContainerState.Exited } &&
2036
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2115
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2175
if (obj is
Container
{ Status.State: ContainerState.Running } &&
2200
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2262
if (obj is
Container
container &&
2319
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2420
if (obj is
Container
container &&
2475
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2582
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2635
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2691
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2740
if (obj is
Container
container &&
2800
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2909
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
2950
if (obj is
Container
{ Status.State: ContainerState.FailedToStart } &&
2983
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3021
if (obj is
Container
container &&
3029
if (obj is
Container
{ Status.State: ContainerState.Exited } &&
3068
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3165
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3227
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3292
var
exeResource = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3572
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3607
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3691
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3724
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3797
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3845
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3879
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
3927
var
dcpCtr = kubernetesService.CreatedResources.OfType<
Container
>().Single(c => c.AppModelResourceName == "database");
3969
var
dcpCtr = kubernetesService.CreatedResources.OfType<
Container
>().Single(c => c.AppModelResourceName == "database");
4032
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4067
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4098
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4140
var
dcpCtr = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
4192
Assert.Equal(5, kubernetesService.CreatedResources.OfType<
Container
>().Count());
4193
var
implicitDefaultContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ImplicitDefault");
4196
var
explicitDefaultContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitDefault");
4199
var
explicitAlwaysContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitAlways");
4202
var
explicitMissingContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitMissing");
4205
var
explicitNeverContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "ExplicitNever");
4239
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
5118
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
5271
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
7269
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>());
8884
var
dcpContainer = kubernetesService.CreatedResources
8885
.OfType<
Container
>()
8950
var
dcpContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
8992
var
dcpContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9110
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9189
Assert.DoesNotContain(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9197
var
startedContainer = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer" && c.Spec.Start == true);
9295
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9307
Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
9384
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
9419
while (!kubernetesService.CreatedResources.OfType<
Container
>().Any(c => c.AppModelResourceName == container.Resource.Name))
9434
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
9437
var
waitingConsumingContainer = Assert.Single(createdContainers, c => c.AppModelResourceName == waitingConsumingEndpoint.Resource.Name);
9488
while (!kubernetesService.CreatedResources.OfType<
Container
>().Any(c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name))
9506
var
tunnelDependentDcpContainer = Assert.Single(createdResources.OfType<
Container
>(), c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name);
9557
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
9594
var createdContainers = kubernetesService.CreatedResources.OfType<
Container
>().ToList();
9827
private static List<
Container
> GetCreatedContainersForResource(TestKubernetesService kubernetesService, string appModelResourceName)
9830
.OfType<
Container
>()
9982
var
container = Assert.Single(kubernetesService.CreatedResources.OfType<
Container
>(), c => c.AppModelResourceName == "aContainer");
Dcp\KubernetesServiceTests.cs (10)
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));
185
var listTask = service.ListAsync<
Container
>(cancellationToken: cts.Token);
Dcp\ResourceSnapshotBuilderTests.cs (2)
23
var
container =
Container
.Create("container", "redis:latest");
Dcp\TestKubernetesService.cs (3)
223
if (resource is not
Container
container ||
384
if (res is
Container
ctr && result is
Container
cu)
DistributedApplicationTests.cs (33)
833
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
890
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
934
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
936
var
redisContainer = Assert.Single(list, c => c.Metadata.Name.StartsWith($"{testName}-redis"));
1009
var list = await s.ListAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1141
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1181
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1225
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, containerPattern, r => r.Status?.State == ContainerState.Running, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1233
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, containerPattern, r => r.Status?.State == ContainerState.Exited, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1241
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, containerPattern, r => r.Status?.State == ContainerState.Running, token);
1304
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(kubernetes, $"{testName}-redis-{ReplicaIdRegex}-{suffix}", r => r.Status?.EffectiveEnv is not null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
1516
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(s, $"{testName}-redis-{ReplicaIdRegex}-{suffix}",
1544
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1572
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1601
var
redisContainer = await KubernetesHelper.GetResourceByNameMatchAsync<
Container
>(
1640
await foreach (var resource in s.WatchAsync<
Container
>().DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout))
1642
Assert.True(resource.Item2.Metadata.Annotations.TryGetValue(
Container
.ResourceNameAnnotation, out var value));
1856
var list = await s.ListAsync<
Container
>().DefaultTimeout();
1857
var
redisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redis-{ReplicaIdRegex}"));
1876
var
otherRedisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redisNoPort-{ReplicaIdRegex}"));
1934
var list = await s.ListAsync<
Container
>().DefaultTimeout();
1935
var
redisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redis-{ReplicaIdRegex}"));
1955
var
otherRedisContainer = Assert.Single(list, c => Regex.IsMatch(c.Name(), $"{testName}-redisNoPort-{ReplicaIdRegex}"));
2052
var containers = await kubernetes.ListAsync<
Container
>(cancellationToken: token)
2054
var
dcpContainer = Assert.Single(containers, c => c.AppModelResourceName == container.Resource.Name);