Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets 1.0.0-dev.7

This is a prerelease version of Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets.
dotnet add package Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets --version 1.0.0-dev.7
                    
NuGet\Install-Package Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets -Version 1.0.0-dev.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets" Version="1.0.0-dev.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets" Version="1.0.0-dev.7" />
                    
Directory.Packages.props
<PackageReference Include="Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets --version 1.0.0-dev.7
                    
#r "nuget: Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets, 1.0.0-dev.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets@1.0.0-dev.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets&version=1.0.0-dev.7&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets&version=1.0.0-dev.7&prerelease
                    
Install as a Cake Tool

Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets

NuGet License

.NET Aspire hosting extensions for publishing External Secrets Operator manifests from AppHost configuration. This package adds Kubernetes environment helpers, ExternalSecret builders, and 1Password External Secrets remote-reference mapping.

Installation

dotnet add package Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets

Quick Start

using Aspire.Hosting;
using Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets;
using Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets.OnePassword;

var builder = DistributedApplication.CreateBuilder(args);

var apiKey = builder.AddParameter("ApiKey", secret: true);
var api = builder.AddProject<Projects.Api>("api");
var kubernetes = builder.AddKubernetesEnvironment("kubernetes");

api.WithKubernetesExternalSecret("api-secrets", secret => secret
    .MapOnePasswordParameter("ApiKey", apiKey, builder.Configuration)
    .InKubernetesEnvironment(kubernetes));

builder.Build().Run();

WithKubernetesExternalSecret(...) emits the explicit ExternalSecret manifest during Kubernetes publish. It does not require a separate environment-level WithExternalSecrets(...) call.

Configure environment defaults when multiple resource-local ExternalSecrets should share a store reference or refresh interval.

kubernetes.WithExternalSecrets(ExternalSecretsOptions.FromConfiguration(builder.Configuration));

You can also configure those defaults in code.

kubernetes.WithExternalSecrets(secrets => secrets
    .WithSecretStore(ExternalSecretStoreOptions.ClusterSecretStore("shared-store"))
    .WithRefreshInterval("30m"));

api.WithKubernetesExternalSecret("api-secrets", secret => secret
    .MapRemoteSecret("ApiKey", apiKey, remoteKey: "Shared/API", remoteProperty: "credential")
    .InKubernetesEnvironment(kubernetes));

builder.Build().Run();

Secret Reload Restarts

WithKubernetesExternalSecret(...) rewrites matching generated environment variables to read from the ExternalSecret target Secret. When it emits those secretKeyRef entries, the generated Deployment metadata receives reloader.stakater.com/auto: "true" so Stakater Reloader can roll the workload after the referenced Secret changes.

api.WithKubernetesExternalSecret("api-secrets", secret =>
    secret.MapOnePasswordParameter(
        "ApiKey",
        apiKey,
        builder.Configuration));

api.WithoutSecretReloadRestart();

Use WithoutSecretReloadRestart() only for workloads that must not restart automatically after a referenced Kubernetes Secret rotates.

Scope

This package emits External Secrets Operator resource intent during Aspire publish. It does not install External Secrets Operator, create a cluster secret store, or grant live-cluster access.

Dependency

This package references Arkanis.Aspire.Hosting.Extensions.Kubernetes.

Repository

Source, issues, and release workflow details are available at https://github.com/ArkanisCorporation/Aspire.Hosting.Extensions.Kubernetes.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Arkanis.Aspire.Hosting.Extensions.Kubernetes.ExternalSecrets:

Package Downloads
Arkanis.Aspire.Hosting.Extensions.Kubernetes.CloudNativePostgres

Reusable Aspire hosting extensions for publishing CloudNativePG database resources and credentials ExternalSecrets.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-dev.7 122 7/5/2026
1.0.0-dev.6 63 7/5/2026
1.0.0-dev.5 80 7/4/2026
1.0.0-dev.4 67 7/3/2026
1.0.0-dev.3 63 7/2/2026
1.0.0-dev.2 309 6/16/2026
1.0.0-dev.1 95 6/11/2026