Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public static IResourceBuilder<KubernetesPersistentVolumeResource> WithStorageCl
/// <param name="storageClassName">A parameter resource builder for the storage
/// class name.</param>
/// <returns>The same builder for chaining.</returns>
[AspireExport("withPvStorageClassParam")]
[AspireExport("withStorageClassParam")]
public static IResourceBuilder<KubernetesPersistentVolumeResource> WithStorageClass(
this IResourceBuilder<KubernetesPersistentVolumeResource> builder,
IResourceBuilder<ParameterResource> storageClassName)
Expand Down Expand Up @@ -132,7 +132,7 @@ public static IResourceBuilder<KubernetesPersistentVolumeResource> WithCapacity(
/// <param name="capacity">A parameter resource builder for the capacity quantity
/// string.</param>
/// <returns>The same builder for chaining.</returns>
[AspireExport("withPvCapacityParam")]
[AspireExport("withCapacityParam")]
public static IResourceBuilder<KubernetesPersistentVolumeResource> WithCapacity(
this IResourceBuilder<KubernetesPersistentVolumeResource> builder,
IResourceBuilder<ParameterResource> capacity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ namespace Aspire.Hosting.Kubernetes;
/// </code>
/// </example>
[Experimental("ASPIRECOMPUTE002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")]
[AspireExport]
public sealed class KubernetesPersistentVolumeResource(
string name,
KubernetesEnvironmentResource environment) : Resource(name), IResourceWithParent<KubernetesEnvironmentResource>
Expand Down
11 changes: 11 additions & 0 deletions tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Go/apphost.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ func main() {
helmChartName := builder.AddParameter("helm-chart-name")
helmChartVersion := builder.AddParameter("helm-chart-version")
helmChartDescription := builder.AddParameter("helm-chart-description")
persistentVolumeStorageClass := builder.AddParameter("persistent-volume-storage-class")
persistentVolumeCapacity := builder.AddParameter("persistent-volume-capacity")

kubernetes := builder.AddKubernetesEnvironment("kube")
kubernetes.WithHelm(&aspire.WithHelmOptions{
Expand Down Expand Up @@ -61,6 +63,15 @@ func main() {
ingress.WithHostname("ingress.example.com")
ingress.WithTls("ingress-tls")

persistentVolume := kubernetes.AddPersistentVolume("data")
persistentVolume.WithStorageClass("fast-storage")
persistentVolume.WithCapacity("5Gi")
_, _ = persistentVolume.GetResourceName()

parameterizedPersistentVolume := kubernetes.AddPersistentVolume("parameterized-data")
parameterizedPersistentVolume.WithStorageClassParam(persistentVolumeStorageClass)
parameterizedPersistentVolume.WithCapacityParam(persistentVolumeCapacity)

serviceContainer := builder.AddContainer("kube-service", "redis:alpine")
serviceContainer.WithComputeEnvironment(kubernetes)
_ = serviceContainer.PublishAsKubernetesService(func(service aspire.KubernetesResource) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ void main() throws Exception {
var helmChartName = builder.addParameter("helm-chart-name");
var helmChartVersion = builder.addParameter("helm-chart-version");
var helmChartDescription = builder.addParameter("helm-chart-description");
var persistentVolumeStorageClass = builder.addParameter("persistent-volume-storage-class");
var persistentVolumeCapacity = builder.addParameter("persistent-volume-capacity");
var kubernetes = builder.addKubernetesEnvironment("kube");
kubernetes.withHelm((helm) -> {
helm.withNamespace("validation-namespace");
Expand Down Expand Up @@ -42,6 +44,13 @@ void main() throws Exception {
var ingress = kubernetes.addIngress("public-ingress");
ingress.withHostname("ingress.example.com");
ingress.withTls("ingress-tls");
var persistentVolume = kubernetes.addPersistentVolume("data");
persistentVolume.withStorageClass("fast-storage");
persistentVolume.withCapacity("5Gi");
var _persistentVolumeResourceName = persistentVolume.getResourceName();
var parameterizedPersistentVolume = kubernetes.addPersistentVolume("parameterized-data");
parameterizedPersistentVolume.withStorageClassParam(persistentVolumeStorageClass);
parameterizedPersistentVolume.withCapacityParam(persistentVolumeCapacity);
var serviceContainer = builder.addContainer("kube-service", "redis:alpine");
serviceContainer.withComputeEnvironment(kubernetes);
serviceContainer.publishAsKubernetesService((service) -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
helm_chart_name = builder.add_parameter("helm-chart-name")
helm_chart_version = builder.add_parameter("helm-chart-version")
helm_chart_description = builder.add_parameter("helm-chart-description")
persistent_volume_storage_class = builder.add_parameter("persistent-volume-storage-class")
persistent_volume_capacity = builder.add_parameter("persistent-volume-capacity")
kubernetes = builder.add_kubernetes_environment("resource")

def configure_helm(helm):
Expand All @@ -34,6 +36,13 @@ def configure_helm(helm):
ingress = kubernetes.add_ingress("public-ingress")
ingress.with_hostname("ingress.example.com")
ingress.with_tls("ingress-tls")
persistent_volume = kubernetes.add_persistent_volume("data")
persistent_volume.with_storage_class("fast-storage")
persistent_volume.with_capacity("5Gi")
_persistent_volume_resource_name = persistent_volume.get_resource_name()
parameterized_persistent_volume = kubernetes.add_persistent_volume("parameterized-data")
parameterized_persistent_volume.with_storage_class_param(persistent_volume_storage_class)
parameterized_persistent_volume.with_capacity_param(persistent_volume_capacity)
service_container = builder.add_container("resource", "image")
service_container.with_compute_environment(kubernetes)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ const helmReleaseName = await builder.addParameter('helm-release-name');
const helmChartName = await builder.addParameter('helm-chart-name');
const helmChartVersion = await builder.addParameter('helm-chart-version');
const helmChartDescription = await builder.addParameter('helm-chart-description');
const persistentVolumeStorageClass = await builder.addParameter('persistent-volume-storage-class');
const persistentVolumeCapacity = await builder.addParameter('persistent-volume-capacity');

const kubernetes = await builder.addKubernetesEnvironment('kube');

Expand Down Expand Up @@ -56,6 +58,15 @@ const ingress = await kubernetes.addIngress('public-ingress');
await ingress.withHostname('ingress.example.com');
await ingress.withTls('ingress-tls');

const persistentVolume = await kubernetes.addPersistentVolume('data');
await persistentVolume.withStorageClass('fast-storage');
await persistentVolume.withCapacity('5Gi');
const _persistentVolumeResourceName: string = await persistentVolume.getResourceName();

const parameterizedPersistentVolume = await kubernetes.addPersistentVolume('parameterized-data');
await parameterizedPersistentVolume.withStorageClassParam(persistentVolumeStorageClass);
await parameterizedPersistentVolume.withCapacityParam(persistentVolumeCapacity);

// === cert-manager ===
// Validates the typed cert-manager API surface generated for TypeScript:
// addCertManager / addIssuer / withLetsEncrypt* / withAcmeServer / withHttp01Solver /
Expand Down
Loading