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