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