Skip to content
Prev Previous commit
Next Next commit
.NET: pass a package namespace downstream
  • Loading branch information
ringods committed Oct 17, 2025
commit 0ccad6829b193a27ea562dfa18c1a0190d3ef1c3
19 changes: 12 additions & 7 deletions pkg/codegen/dotnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ func GenerateDotNet(pg *PackageGenerator, cs *CodegenSettings) (map[string]*byte
// only get generated properly if `compatibility` was `kubernetes20`.
oldName := pkg.Name
pkg.Name = cs.PackageName
pkg.Namespace = cs.PackageNamespace
var err error

files, err := dotnet.GeneratePackage(PulumiToolName, pkg, nil, nil)
Expand All @@ -67,9 +68,13 @@ func GenerateDotNet(pg *PackageGenerator, cs *CodegenSettings) (map[string]*byte
pkg.Name = oldName
delete(pkg.Language, "csharp")

namespaceName := dotnet.Title(cs.PackageName)
files["KubernetesResource.cs"] = []byte(kubernetesResource(namespaceName))
files["Utilities.cs"] = []byte(dotNetUtilities(namespaceName))
packageName := dotnet.Title(cs.PackageName)
namespace := dotnet.Title(cs.PackageNamespace)
if namespace == "" {
namespace = "Pulumi"
}
files["KubernetesResource.cs"] = []byte(kubernetesResource(namespace, packageName))
files["Utilities.cs"] = []byte(dotNetUtilities(namespace, packageName))

// Delete unneeded files
for _, unneededFile := range unneededDotNetFiles {
Expand All @@ -84,9 +89,9 @@ func GenerateDotNet(pg *PackageGenerator, cs *CodegenSettings) (map[string]*byte
return buffers, nil
}

func kubernetesResource(name string) string {
func kubernetesResource(namespace string, name string) string {
return `// Copyright 2016-2022, Pulumi Corporation
namespace Pulumi.` + name + `{
namespace ` + namespace + `.` + name + `{
/// <summary>
/// A base class for all Kubernetes resources.
/// </summary>
Expand Down Expand Up @@ -116,15 +121,15 @@ namespace Pulumi.` + name + `{
// tried running `pulumi up` with the normal `Utilities.cs` file.
// As a temporary fix, this modified `Utilities.cs` file just removes the
// `static Utilities()` method.
func dotNetUtilities(name string) string {
func dotNetUtilities(namespace string, name string) string {
return `// *** WARNING: this file was generated by crd2pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Reflection;
using Pulumi.Kubernetes;

namespace Pulumi.` + name + `
namespace ` + namespace + `.` + name + `
{
static class Utilities
{
Expand Down