Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

IaC for all infrastructure required by Pulumiverse

License

NotificationsYou must be signed in to change notification settings

pulumiverse/infra

Repository files navigation

The Pulumiverse organization has some infrastructure to support its operation.This repository manages as much as possible of this setup using Pulumi IaC.

Github

Status: Partially Automated

The Github provider doesn't contain the functionality to configure all of the organization level settings. The following settingsare controlled manually as a result:

  • Workflow permissions: default set toRead repository contents permission instead ofRead and write permission

The following resources within the organization on Github is managed by Pulumi code:

  • Teams
  • Membership to organization and teams
  • Repositories and team access

Each repository which publishes artifacts to package registries will getseparate publishing tokens to the respective package registries.

Package Registries

Please read the documentation onAuthoring & Publishing before continuing with the specifics below.

Notes:

  • Manually authoring a Pulumi schema file.TheJSON schema file is used bypulumi-gen-xyz to create language-specific SDKs. It is, therefore, a central requirement for any resource provider. Provider schemas can be handwritten, or alternatively machine-generated by combining API specification with pulumi-specific logic.

    When writing the schema by hand, it is helpful to associate the JSON schema in your IDE for completion or Intellisense features to work:

    Visual Studio Code: the easiest option is tomap the schema file in your User Settings which enables it for all your provider projects:

        "json.schemas": [      {          "fileMatch": [              "/provider/cmd/pulumi-*/schema.json"          ],          "url": "https://raw.githubusercontent.com/pulumi/pulumi/master/pkg/codegen/schema/pulumi.json"      }  ]

    This repository provides thexyz example schema to get you started. TheAWS Native Provider schema provides a much larger example. Refer to thepackage schema documentation for additional details when writing the schema.

  • to use custom package names for Terraform bridge providers, please ensure you minimally usegithub.com/pulumi/pulumi-terraform-bridge v3.21.0.

  • when publishing plugin binaries for providers as Github releases, make sure your users are runningPulumi 3.35.3or up. Make sure to set the plugin download URL consistently togithub://api.github.com/pulumiverse.

    Inschema.json, add a toplevel entry like this:

    "pluginDownloadURL":"github://api.github.com/pulumiverse",

    When bridging a Terraform provider, add the following toproviders/resources.go:

    funcProvider() tfbridge.ProviderInfo {...// Create a Pulumi provider mappingprov:= tfbridge.ProviderInfo{...// PluginDownloadURL is an optional URL used to download the Provider// for use in Pulumi programsPluginDownloadURL:"github://api.github.com/pulumiverse",...  }...}

NPM Registry

Administration

Status: Manual

All members of the Pulumiverse Governance Board receive admin/owner rights onthepulumiverse organization on theNPM Registry.Having this organization ensures we have the@pulumiverse/... packagenamespace available and claimed.

Publish packages

We encourage all publishable artifacts to use this namespace. For Pulumipackages, set the package name in theschema.json file:

{..."language": {"nodejs": {"packageName":"@pulumiverse/<package>",...        }    }}

For a Terraform bridged provider, add this toresources.go:

funcProvider() tfbridge.ProviderInfo {...// Create a Pulumi provider mappingprov:= tfbridge.ProviderInfo{...JavaScript:&tfbridge.JavaScriptInfo{PackageName:"@pulumiverse/<package>",...},...}...}

Python Package Index

Administration

Status: Manual

Pypi doesn't have the notion of an organization or team account. A separateuser accountpulumiverse is the owner of all Python packages publishedunder the Pulumiverse wings.

The credentials to access this user account are shared securely with themembers of the Pulumi Governance Board.

Publish packages

We encourage all publishable artifacts to use thepulumiverse_ prefix.For Pulumi packages, set the package name in theschema.json file:

{..."language": {"python": {"packageName":"pulumiverse_<package>",...        }    }}

For a Terraform bridged provider, add this toresources.go:

funcProvider() tfbridge.ProviderInfo {...// Create a Pulumi provider mappingprov:= tfbridge.ProviderInfo{...Python:&tfbridge.PythonInfo{PackageName:"pulumiverse_<package>",...},...}...}

Go

Administration

Go doesn't have or need a central repository. The generated Go SDK for aPulumi package must be committed into the Git repository and properlytagged.

Publish packages

To publish Go packages, the base import path must be set correctly in thegeneratedgo.mod file.For Pulumi packages, set the package name in theschema.json file:

{..."language": {"go": {"importBasePath":"github.com/pulumiverse/pulumi-<package>/sdk/go/<package>"...        }    }}

For a Terraform bridged provider, add this toresources.go:

funcProvider() tfbridge.ProviderInfo {...// Create a Pulumi provider mappingprov:= tfbridge.ProviderInfo{...Golang:&tfbridge.GolangInfo{ImportBasePath:filepath.Join(fmt.Sprintf("github.com/pulumiverse/pulumi-%[1]s/sdk/",mainPkg),tfbridge.GetModuleMajorVersion(version.Version),"go",mainPkg,),...},...}...}

Nuget

Administration

Nuget doesn't have the notion of an organization or team account. A separateuser accountpulumiverse is the owner of all .NET packages publishedunder the Pulumiverse wings.

The credentials to access this user account are shared securely with themembers of the Pulumi Governance Board.

Publish packages

To publish Nuget packages, the base namespace must be set correctly configured.For Pulumi packages, set the namespace in theschema.json file:

{..."language": {"csharp": {"rootNamespace":"Pulumiverse",...        }    }}

For a Terraform bridged provider, add this toresources.go:

funcProvider() tfbridge.ProviderInfo {...// Create a Pulumi provider mappingprov:= tfbridge.ProviderInfo{...CSharp:&tfbridge.CSharpInfo{RootNamespace:"Pulumiverse",...},...}...}

Cloudflare

Status: Manual

  • DNS hosting ofpulumiverse.com

Pulumi Service

Status: Manual

Membership tohttps://app.pulumi.com/pulumiverse is managed manually, given therecurrently is no Pulumi provider to their own platform. This is requested as#18 andin developmentaccording thepublic roadmap.

We will start using the provider once the first release becomes available.

About

IaC for all infrastructure required by Pulumiverse

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp