files

package
v1.322.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Auth tokens
	SecretTokenPrivateKey = "tokenPrivateKey"
	SecretTokenPublicKey  = "tokenPublicKey"

	// Codesphere core
	SecretDomainAuthPrivateKey = "domainAuthPrivateKey"
	SecretDomainAuthPublicKey  = "domainAuthPublicKey"

	// OIDC
	SecretOidcClientId     = "oidcClientId"
	SecretOidcClientSecret = "oidcClientSecret"

	// GitHub
	SecretGithubAppsClientId     = "githubAppsClientId"
	SecretGithubAppsClientSecret = "githubAppsClientSecret"

	// GitLab
	SecretGitlabAppClientId     = "gitlabAppClientId"
	SecretGitlabAppClientSecret = "gitlabAppClientSecret"

	// Bitbucket
	SecretBitbucketAppsClientId     = "bitbucketAppsClientId"
	SecretBitbucketAppsClientSecret = "bitbucketAppsClientSecret"

	// Azure DevOps
	SecretAzureDevOpsAppClientId     = "azureDevOpsAppClientId"
	SecretAzureDevOpsAppClientSecret = "azureDevOpsAppClientSecret"

	// Registry
	SecretRegistryUsername = "registryUsername"
	SecretRegistryPassword = "registryPassword"

	// ACME
	SecretAcmeEabMacKey = "acmeEabMacKey"

	// OpenBao
	SecretOpenBaoPassword = "openBaoPassword"

	// OpenFGA
	SecretOpenFgaPresharedKey            = "openFgaPresharedKey"
	SecretOpenfgaDbBackupAccessKeyId     = "openfgaDbBackupAccessKeyId"
	SecretOpenfgaDbBackupSecretAccessKey = "openfgaDbBackupSecretAccessKey"

	// Monitoring
	SecretLokiGatewayBasicAuthPassword = "lokiGatewayBasicAuthPassword"
	SecretCentralOtelCreds             = "centralOtelCreds"

	// Postgres
	SecretPostgresCaKeyPem            = "postgresCaKeyPem"
	SecretPostgresPassword            = "postgresPassword"
	SecretPostgresPrimaryServerKeyPem = "postgresPrimaryServerKeyPem"
	SecretPostgresReplicaPassword     = "postgresReplicaPassword"
	SecretPostgresReplicaServerKeyPem = "postgresReplicaServerKeyPem"

	// Ceph
	SecretCephSshPrivateKey = "cephSshPrivateKey"

	// SSH workspace proxy
	SecretSshWorkspaceProxyHostKey = "sshWorkspaceProxyHostKey"

	// Cluster / TLS
	SecretSelfSignedCaKeyPem = "selfSignedCaKeyPem"

	// Mounter
	SecretMounterHmacSecret = "mounterHmacSecret"

	// Nix
	SecretPrivNixSigningKey = "privNixSigningKey"
	SecretPubNixSigningKey  = "pubNixSigningKey"

	// Generated-only (not consumed by merge)
	SecretManagedServiceSecrets = "managedServiceSecrets"
	SecretKubeConfig            = "kubeConfig"

	// Default/optional
	SecretDigitalOceanApiToken          = "digitalOceanApiToken"
	SecretMongoDbPasswordEncryptionKey  = "mongoDbPasswordEncryptionKey"
	SecretGoogleCloudAvatarPrivateKey   = "googleCloudAvatarPrivateKey"
	SecretGoogleCloudVmImagesPrivateKey = "googleCloudVmImagesPrivateKey"
	SecretGoogleClientId                = "googleClientId"
	SecretGoogleClientSecret            = "googleClientSecret"
	SecretGoogleCloudAvatarBucket       = "googleCloudAvatarBucket"
	SecretGoogleCloudAvatarClientEmail  = "googleCloudAvatarClientEmail"
	SecretGoogleCloudAvatarProjectId    = "googleCloudAvatarProjectId"
	SecretGitHubClientId                = "gitHubClientId"
	SecretGitHubClientSecret            = "gitHubClientSecret"
	SecretGitlabClientId                = "gitlabClientId"
	SecretGitlabClientSecret            = "gitlabClientSecret"
	SecretBitbucketClientId             = "bitbucketClientId"
	SecretBitbucketClientSecret         = "bitbucketClientSecret"
	SecretRecaptchaKey                  = "recaptchaKey"
	SecretRecaptchaSecret               = "recaptchaSecret"
	SecretRecaptchaKeyV3                = "recaptchaKeyV3"
	SecretRecaptchaSecretV3             = "recaptchaSecretV3"
	SecretRecaptchaClientEmailV3        = "recaptchaClientEmailV3"
	SecretRecaptchaProjectIdV3          = "recaptchaProjectIdV3"
	SecretStripeWebhookEndpointSecret   = "stripeWebhookEndpointSecret"
	SecretStripePublishableKey          = "stripePublishableKey"
	SecretStripeSecretKey               = "stripeSecretKey"
	SecretSendGridApiKey                = "sendGridApiKey"
)

Secret name constants — each constant value equals the vault secret name it represents.

Variables

This section is empty.

Functions

func Capitalize added in v0.21.0

func Capitalize(s string) string

func PostgresPasswordSecretName added in v1.296.0

func PostgresPasswordSecretName(serviceName string) string

PostgresPasswordSecretName returns the vault secret name holding the postgres password of the service with the given name, e.g. "auth" -> "postgresPasswordAuth".

func PostgresUserSecretName added in v1.296.0

func PostgresUserSecretName(serviceName string) string

PostgresUserSecretName returns the vault secret name holding the postgres username of the service with the given name, e.g. "auth" -> "postgresUserAuth".

Types

type ACMEConfig added in v0.36.0

type ACMEConfig struct {
	Enabled              bool       `yaml:"enabled"`
	Name                 string     `yaml:"name,omitempty"`
	Email                string     `yaml:"email,omitempty"`
	Server               string     `yaml:"server,omitempty"`
	PrivateKeySecretName string     `yaml:"-"`
	Solver               ACMESolver `yaml:"-"`

	EABKeyID string `yaml:"eabKeyId,omitempty"`
}

type ACMEDNS01Solver added in v0.36.0

type ACMEDNS01Solver struct {
	Provider string                 `yaml:"provider"`
	Config   map[string]interface{} `yaml:"config,omitempty"`

	Secrets map[string]string `yaml:"-"`
}

type ACMESolver added in v0.36.0

type ACMESolver struct {
	DNS01 *ACMEDNS01Solver `yaml:"dns01,omitempty"`
}

type APIConfig added in v0.17.0

type APIConfig struct {
	BaseURL string `yaml:"baseUrl"`
}

type BarmanCloudPluginConfig added in v1.79.0

type BarmanCloudPluginConfig struct {
	Enabled  bool          `yaml:"enabled"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type BlackboxExporterConfig added in v1.17.0

type BlackboxExporterConfig struct {
	Override ChartOverride `yaml:"override,omitempty"`
}

type CAConfig added in v0.17.0

type CAConfig struct {
	Algorithm   string `yaml:"algorithm"`
	KeySizeBits int    `yaml:"keySizeBits"`
	CertPem     string `yaml:"certPem"`
}

type CentralOtelConfig added in v1.153.0

type CentralOtelConfig struct {
	Enabled  bool          `yaml:"enabled"`
	Username string        `yaml:"username,omitempty"`
	Password string        `yaml:"-"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type CephConfig added in v0.17.0

type CephConfig struct {
	CsiKubeletDir string     `yaml:"csiKubeletDir,omitempty"`
	CephAdmSSHKey CephSSHKey `yaml:"cephAdmSshKey"`
	NodesSubnet   string     `yaml:"nodesSubnet"`
	Hosts         []CephHost `yaml:"hosts"`
	OSDs          []CephOSD  `yaml:"osds"`
}

type CephDBDevices added in v0.17.0

type CephDBDevices struct {
	Size  string `yaml:"size"`
	Limit int    `yaml:"limit,omitempty"`
}

type CephDataDevices added in v0.17.0

type CephDataDevices struct {
	Size  string `yaml:"size"`
	Limit int    `yaml:"limit,omitempty"`
}

type CephHost added in v0.17.0

type CephHost struct {
	Hostname  string `yaml:"hostname"`
	IPAddress string `yaml:"ipAddress"`
	IsMaster  bool   `yaml:"isMaster"`
}

type CephHostConfig added in v0.17.0

type CephHostConfig struct {
	Hostname  string
	IPAddress string
	IsMaster  bool
}

type CephOSD added in v0.17.0

type CephOSD struct {
	SpecID      string          `yaml:"specId"`
	Placement   CephPlacement   `yaml:"placement"`
	DataDevices CephDataDevices `yaml:"dataDevices"`
	DBDevices   CephDBDevices   `yaml:"dbDevices"`
}

type CephPlacement added in v0.17.0

type CephPlacement struct {
	HostPattern string `yaml:"host_pattern"`
}

type CephSSHKey added in v0.17.0

type CephSSHKey struct {
	PublicKey string `yaml:"publicKey"`
}

type CertIssuerConfig added in v0.41.0

type CertIssuerConfig struct {
	Type CertIssuerType `yaml:"type,omitempty"`
	Acme *ACMEConfig    `yaml:"acme,omitempty"`
}

type CertIssuerType added in v0.41.0

type CertIssuerType string
const (
	CertIssuerTypeSelfSigned CertIssuerType = "self-signed"
	CertIssuerTypeACME       CertIssuerType = "acme"
)

type CertManagerConfig added in v1.17.0

type CertManagerConfig struct {
	Override ChartOverride `yaml:"override,omitempty"`
}

type ChartOverride added in v1.17.0

type ChartOverride = map[string]interface{}

type ChartValues added in v1.212.0

type ChartValues = map[string]interface{}

type ClusterCertificates added in v0.17.0

type ClusterCertificates struct {
	CA       CAConfig      `yaml:"ca"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type ClusterConfig added in v0.17.0

type ClusterConfig struct {
	Certificates        ClusterCertificates        `yaml:"certificates"`
	CertManager         *CertManagerConfig         `yaml:"certManager,omitempty"`
	TrustManager        *TrustManagerConfig        `yaml:"trustManager,omitempty"`
	Monitoring          *MonitoringConfig          `yaml:"monitoring,omitempty"`
	Gateway             GatewayConfig              `yaml:"gateway"`
	PublicGateway       GatewayConfig              `yaml:"publicGateway"`
	RookExternalCluster *RookExternalClusterConfig `yaml:"rookExternalCluster,omitempty"`
	PgOperator          *PgOperatorConfig          `yaml:"pgOperator,omitempty"`
	BarmanCloudPlugin   *BarmanCloudPluginConfig   `yaml:"BarmanCloudPluginConfig,omitempty"`
	RgwLoadBalancer     *RgwLoadBalancerConfig     `yaml:"rgwLoadBalancer,omitempty"`
	Kyverno             *KyvernoConfig             `yaml:"kyverno,omitempty"`
}

type CodesphereConfig

type CodesphereConfig struct {
	Domain                     string                 `yaml:"domain"`
	WorkspaceHostingBaseDomain string                 `yaml:"workspaceHostingBaseDomain"`
	PublicIP                   string                 `yaml:"publicIp"`
	CertIssuer                 *CertIssuerConfig      `yaml:"certIssuer,omitempty"`
	CustomDomains              CustomDomainsConfig    `yaml:"customDomains"`
	DNSServers                 []string               `yaml:"dnsServers"`
	Internal                   []string               `yaml:"internal"`
	Preview                    map[string]bool        `yaml:"preview"`
	Features                   map[string]bool        `yaml:"features"`
	ClusterAdminEmail          string                 `yaml:"clusterAdminEmail,omitempty"`
	ExtraCAPem                 string                 `yaml:"extraCaPem,omitempty"`
	ExtraWorkspaceEnvVars      map[string]string      `yaml:"extraWorkspaceEnvVars,omitempty"`
	ExtraWorkspaceFiles        []ExtraWorkspaceFile   `yaml:"extraWorkspaceFiles,omitempty"`
	WorkspaceImages            *WorkspaceImagesConfig `yaml:"workspaceImages,omitempty"`
	DeployConfig               DeployConfig           `yaml:"deployConfig"`
	Plans                      PlansConfig            `yaml:"plans"`
	UnderprovisionFactors      *UnderprovisionFactors `yaml:"underprovisionFactors,omitempty"`
	GitProviders               *GitProvidersConfig    `yaml:"gitProviders,omitempty"`
	OAuth                      *OAuthProvidersConfig  `yaml:"oauth,omitempty"`
	ManagedServices            []ManagedServiceConfig `yaml:"managedServices,omitempty"`
	OpenBao                    *OpenBaoConfig         `yaml:"openBao,omitempty"`
	OpenfgaBackups             *OpenfgaBackupsConfig  `yaml:"openfgaBackups,omitempty"`
	OpenFga                    *OpenFgaConfig         `yaml:"openFga,omitempty"`
	Migration                  *MigrationConfig       `yaml:"migration,omitempty"`
	TelemetryExport            *TelemetryExport       `yaml:"telemetryExport,omitempty"`
	Override                   ChartOverride          `yaml:"override,omitempty"`
}

func (*CodesphereConfig) EnsureCertIssuer added in v1.276.1

func (c *CodesphereConfig) EnsureCertIssuer() *CertIssuerConfig

type CustomDomainsConfig added in v0.17.0

type CustomDomainsConfig struct {
	CNameBaseDomain string `yaml:"cNameBaseDomain"`
}

type DatacenterConfig added in v0.17.0

type DatacenterConfig struct {
	ID          int    `yaml:"id"`
	Name        string `yaml:"name"`
	City        string `yaml:"city"`
	CountryCode string `yaml:"countryCode"`
}

DatacenterConfig describes one data center. RootConfig.Datacenter is the data center an installer run installs; RootConfig.DataCenters lists every data center of the installation, which the installer needs to render the platform's data center picker. Both are the same in a single-data-center installation, where DataCenters may be left empty: the installer then defaults it to the local data center. DefaultDataCenterID likewise defaults to Datacenter.ID.

type DeployConfig

type DeployConfig struct {
	Images map[string]ImageConfig `yaml:"images"`
}

type ExtraWorkspaceFile added in v0.17.0

type ExtraWorkspaceFile struct {
	Path    string `yaml:"path"`
	Content string `yaml:"content"`
}

type FlavorConfig

type FlavorConfig struct {
	// Image can be a referenced image or a plain string
	Image ImageRef    `yaml:"image"`
	Pool  map[int]int `yaml:"pool"`
}

type GatewayConfig added in v0.17.0

type GatewayConfig struct {
	ServiceType string            `yaml:"serviceType"`
	Annotations map[string]string `yaml:"annotations,omitempty"`
	IPAddresses []string          `yaml:"ipAddresses,omitempty"`
	Override    ChartOverride     `yaml:"override,omitempty"`
}

type GitProviderConfig added in v0.17.0

type GitProviderConfig struct {
	Enabled bool        `yaml:"enabled"`
	URL     string      `yaml:"url"`
	API     APIConfig   `yaml:"api"`
	OAuth   OAuthConfig `yaml:"oauth"`
}

type GitProvidersConfig added in v0.17.0

type GitProvidersConfig struct {
	GitHub      *GitProviderConfig `yaml:"github,omitempty"`
	GitLab      *GitProviderConfig `yaml:"gitlab,omitempty"`
	Bitbucket   *GitProviderConfig `yaml:"bitbucket,omitempty"`
	AzureDevOps *GitProviderConfig `yaml:"azureDevOps,omitempty"`
}

type GrafanaAlloyConfig added in v1.17.0

type GrafanaAlloyConfig struct {
	Enabled  bool                  `yaml:"enabled"`
	Loki     *LokiConnectionConfig `yaml:"loki,omitempty"`
	Override ChartOverride         `yaml:"override,omitempty"`
}

type GrafanaConfig added in v1.17.0

type GrafanaConfig struct {
	Enabled  bool          `yaml:"enabled"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type HostingPlan added in v0.17.0

type HostingPlan struct {
	CPUTenth      int `yaml:"cpuTenth"`
	GPUParts      int `yaml:"gpuParts"`
	MemoryMb      int `yaml:"memoryMb"`
	StorageMb     int `yaml:"storageMb"`
	TempStorageMb int `yaml:"tempStorageMb"`
}

type ImageConfig

type ImageConfig struct {
	Name           string                  `yaml:"name"`
	SupportedUntil string                  `yaml:"supportedUntil"`
	Flavors        map[string]FlavorConfig `yaml:"flavors"`
}

type ImageRef

type ImageRef struct {
	BomRef     string `yaml:"bomRef,omitempty"`
	Dockerfile string `yaml:"dockerfile,omitempty"`
	// ImageName Contains the image name when it's just a plain string
	ImageName string `yaml:"-"`
}

func (*ImageRef) GetImageReference added in v0.27.6

func (i *ImageRef) GetImageReference() string

GetImageReference returns the actual image reference

func (ImageRef) MarshalYAML added in v0.27.6

func (i ImageRef) MarshalYAML() (interface{}, error)

MarshalYAML implements custom marshaling

func (*ImageRef) UnmarshalYAML added in v0.27.6

func (i *ImageRef) UnmarshalYAML(node *yaml.Node) error

UnmarshalYAML implements custom unmarshaling to support both string and object formats

type InstallVault added in v0.17.0

type InstallVault struct {
	Secrets []SecretEntry `yaml:"secrets"`
}

Vault

func (*InstallVault) Clone added in v1.296.0

func (v *InstallVault) Clone() *InstallVault

Clone returns a deep copy of the vault, so callers can derive a new vault without aliasing the original's secret entries. A nil vault clones to nil, so a caller can pass on a vault that was never loaded instead of guarding every call site.

func (*InstallVault) GetSecret added in v1.197.0

func (v *InstallVault) GetSecret(name string) *SecretEntry

GetSecret returns the entry with the given name, or nil if not found.

func (*InstallVault) Marshal added in v0.17.0

func (v *InstallVault) Marshal() ([]byte, error)

func (*InstallVault) RemoveSecret added in v1.296.0

func (v *InstallVault) RemoveSecret(name string) bool

RemoveSecret deletes the entry with the given name and reports whether one was removed.

func (*InstallVault) SetSecret added in v1.34.0

func (v *InstallVault) SetSecret(entry SecretEntry)

SetSecret adds or updates a secret entry in the vault.

func (*InstallVault) Unmarshal added in v0.17.0

func (v *InstallVault) Unmarshal(data []byte) error

type K8sNode added in v0.17.0

type K8sNode struct {
	IPAddress string `yaml:"ipAddress"`
}

type KubernetesConfig added in v0.17.0

type KubernetesConfig struct {
	ManagedByCodesphere bool      `yaml:"managedByCodesphere"`
	APIServerHost       string    `yaml:"apiServerHost,omitempty"`
	ControlPlanes       []K8sNode `yaml:"controlPlanes,omitempty"`
	Workers             []K8sNode `yaml:"workers,omitempty"`
	PodCIDR             string    `yaml:"podCidr,omitempty"`
	ServiceCIDR         string    `yaml:"serviceCidr,omitempty"`

	// Internal flag
	NeedsKubeConfig bool `yaml:"-"`
}

type KyvernoConfig added in v1.166.0

type KyvernoConfig struct {
	Enabled bool `yaml:"enabled"`
}

type LokiConfig added in v1.17.0

type LokiConfig struct {
	Enabled  bool          `yaml:"enabled"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type LokiConnectionConfig added in v1.134.0

type LokiConnectionConfig struct {
	Endpoint string `yaml:"endpoint"`
	User     string `yaml:"user,omitempty"`

	Password string `yaml:"-"`
}

type ManagedServiceAPI added in v0.17.0

type ManagedServiceAPI struct {
	Endpoint string `yaml:"endpoint"`
}

type ManagedServiceBackendsConfig added in v0.17.0

type ManagedServiceBackendsConfig struct {
	Postgres *PgManagedServiceConfig `yaml:"postgres,omitempty"`
	S3       *S3ManagedServiceConfig `yaml:"s3,omitempty"`
}

type ManagedServiceConfig added in v0.17.0

type ManagedServiceConfig struct {
	Name          string                 `yaml:"name"`
	API           ManagedServiceAPI      `yaml:"api,omitempty"`
	Author        string                 `yaml:"author,omitempty"`
	Category      string                 `yaml:"category,omitempty"`
	ConfigSchema  map[string]interface{} `yaml:"configSchema,omitempty"`
	DetailsSchema map[string]interface{} `yaml:"detailsSchema,omitempty"`
	SecretsSchema map[string]interface{} `yaml:"secretsSchema,omitempty"`
	Description   string                 `yaml:"description,omitempty"`
	DisplayName   string                 `yaml:"displayName,omitempty"`
	IconURL       string                 `yaml:"iconUrl,omitempty"`
	Plans         []ServicePlan          `yaml:"plans,omitempty"`
	Version       string                 `yaml:"version"`
}

type ManifestEntry

type ManifestEntry struct {
	MediaType   string            `json:"mediaType"`
	Digest      string            `json:"digest"`
	Size        int64             `json:"size"`
	Annotations map[string]string `json:"annotations,omitempty"` // Use omitempty just in case, though usually present
}

ManifestEntry represents a single manifest entry within the index.

type MetalLBBGP added in v0.17.0

type MetalLBBGP struct {
	Name          string              `yaml:"name"`
	Pools         []string            `yaml:"pools"`
	Config        MetalLBBGPConfig    `yaml:"config"`
	NodeSelectors []map[string]string `yaml:"nodeSelectors,omitempty"`
}

type MetalLBBGPConfig added in v0.17.0

type MetalLBBGPConfig struct {
	MyASN       int    `yaml:"myASN"`
	PeerASN     int    `yaml:"peerASN"`
	PeerAddress string `yaml:"peerAddress"`
	BFDProfile  string `yaml:"bfdProfile,omitempty"`
}

type MetalLBConfig added in v0.17.0

type MetalLBConfig struct {
	Enabled bool             `yaml:"enabled"`
	Pools   []MetalLBPoolDef `yaml:"pools"`
	L2      []MetalLBL2      `yaml:"l2,omitempty"`
	BGP     []MetalLBBGP     `yaml:"bgp,omitempty"`
}

type MetalLBL2 added in v0.17.0

type MetalLBL2 struct {
	Name          string              `yaml:"name"`
	Pools         []string            `yaml:"pools"`
	NodeSelectors []map[string]string `yaml:"nodeSelectors,omitempty"`
}

type MetalLBPool added in v0.17.0

type MetalLBPool struct {
	Name        string
	IPAddresses []string
}

type MetalLBPoolDef added in v0.17.0

type MetalLBPoolDef struct {
	Name        string   `yaml:"name"`
	IPAddresses []string `yaml:"ipAddresses"`
}

type MigrationConfig added in v1.34.0

type MigrationConfig struct {
	Postgres *MigrationPostgresConfig `yaml:"postgres,omitempty"`
}

type MigrationPostgresConfig added in v1.34.0

type MigrationPostgresConfig struct {
	Host     string `yaml:"host,omitempty"`
	Port     int    `yaml:"port,omitempty"`
	Database string `yaml:"database,omitempty"`
	AltName  string `yaml:"altName,omitempty"`
}

type MonitoringConfig added in v0.17.0

type MonitoringConfig struct {
	Prometheus        *PrometheusConfig       `yaml:"prometheus,omitempty"`
	BlackboxExporter  *BlackboxExporterConfig `yaml:"blackboxExporter,omitempty"`
	PushGateway       *PushGatewayConfig      `yaml:"pushGateway,omitempty"`
	Loki              *LokiConfig             `yaml:"loki,omitempty"`
	Grafana           *GrafanaConfig          `yaml:"grafana,omitempty"`
	GrafanaAlloy      *GrafanaAlloyConfig     `yaml:"grafanaAlloy,omitempty"`
	CentralOtelExport *CentralOtelConfig      `yaml:"centralOtelExport,omitempty"`
}

type OAuthConfig added in v0.17.0

type OAuthConfig struct {
	Issuer                string `yaml:"issuer"`
	AuthorizationEndpoint string `yaml:"authorizationEndpoint"`
	TokenEndpoint         string `yaml:"tokenEndpoint"`
	ClientAuthMethod      string `yaml:"clientAuthMethod,omitempty"`
	Scope                 string `yaml:"scope,omitempty"`
	RedirectURI           string `yaml:"redirectUri,omitempty"`
	InstallationURI       string `yaml:"installationUri,omitempty"`
}

type OAuthProvidersConfig added in v1.129.0

type OAuthProvidersConfig struct {
	Oidc *OidcOAuthProvider `yaml:"oidc,omitempty"`
}

type OCIImageIndex

type OCIImageIndex struct {
	SchemaVersion int             `json:"schemaVersion"`
	MediaType     string          `json:"mediaType"`
	Manifests     []ManifestEntry `json:"manifests"`
}

OCIImageIndex represents the top-level structure of an OCI Image Index (manifest list).

func (*OCIImageIndex) ExtractImageNames

func (o *OCIImageIndex) ExtractImageNames() ([]string, error)

ExtractImageNames extracts the image names from the OCI image index file.

func (*OCIImageIndex) ParseOCIImageConfig

func (o *OCIImageIndex) ParseOCIImageConfig(filePath string) error

type OidcOAuthProvider added in v1.129.0

type OidcOAuthProvider struct {
	Type      string   `yaml:"type"`
	Enabled   bool     `yaml:"enabled"`
	Name      string   `yaml:"name"`
	IssuerURL string   `yaml:"issuerUrl"`
	Scopes    []string `yaml:"scopes,omitempty"`
}

type OpenBaoConfig added in v0.50.0

type OpenBaoConfig struct {
	Engine string `yaml:"engine,omitempty"`
	URI    string `yaml:"uri,omitempty"`
	User   string `yaml:"user,omitempty"`
}

type OpenFgaConfig added in v1.315.0

type OpenFgaConfig struct {
	// Deploy controls whether pc-applications deploys OpenFGA in this data center.
	// Defaults to true when unset, matching the pc-applications chart.
	Deploy *bool `yaml:"deploy,omitempty"`
	// APIURL is the URL the Codesphere services reach OpenFGA at. Defaults to the
	// in-cluster service of a locally deployed OpenFGA; required when Deploy is false.
	APIURL string `yaml:"apiUrl,omitempty"`
	// Expose publishes the deployed OpenFGA through the Codesphere gateway so the other
	// data centers can reach it.
	Expose *OpenFgaExposeConfig `yaml:"expose,omitempty"`
}

OpenFgaConfig configures the authorization store. One OpenFGA instance serves a whole installation, so in a multi-data-center setup exactly one data center deploys and exposes it (Deploy + Expose) and every other one only points at it (APIURL).

func (*OpenFgaConfig) DeploysOpenFga added in v1.315.0

func (c *OpenFgaConfig) DeploysOpenFga() bool

DeploysOpenFga reports whether pc-applications should deploy OpenFGA in this data center.

func (*OpenFgaConfig) ExposesOpenFga added in v1.315.0

func (c *OpenFgaConfig) ExposesOpenFga() bool

ExposesOpenFga reports whether the deployed OpenFGA is published through the gateway.

type OpenFgaExposeConfig added in v1.315.0

type OpenFgaExposeConfig struct {
	Enabled bool `yaml:"enabled"`
	// Host OpenFGA is served under. Must resolve to this data center's public IP and
	// is what the other data centers put in their APIURL.
	Host string `yaml:"host,omitempty"`
}

OpenFgaExposeConfig publishes a locally deployed OpenFGA through the Codesphere gateway.

type OpenfgaBackupsConfig added in v1.275.0

type OpenfgaBackupsConfig struct {
	Enabled bool `yaml:"enabled"`
	// Schedule is an optional 6-field cron expression. When empty the chart default applies.
	Schedule string `yaml:"schedule,omitempty"`
	// DestinationPath is the S3-style backup target (e.g. s3://backup-openfga-dev). Required when enabled.
	DestinationPath string `yaml:"destinationPath,omitempty"`
	// EndpointURL is the S3-compatible endpoint (e.g. https://s3.de.io.cloud.ovh.net). Required when enabled.
	EndpointURL string `yaml:"endpointURL,omitempty"`
	// RetentionPolicy is optional (e.g. "7d"). When empty the chart default of "7d" applies.
	RetentionPolicy string `yaml:"retentionPolicy,omitempty"`
}

OpenfgaBackupsConfig is the friendly representation of the OpenFGA database backup settings. On marshal it is translated into the openfga application values under pcApps.applications.openfga (see buildOpenfgaBackupValues).

type OperationsConfig added in v1.184.0

type OperationsConfig struct {
	Skip []string `yaml:"skip"`
}

type PgManagedServiceConfig added in v1.79.0

type PgManagedServiceConfig struct {
	Override ChartOverride `yaml:"override,omitempty"`
}

type PgOperatorConfig added in v1.17.0

type PgOperatorConfig struct {
	Enabled  bool          `yaml:"enabled"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type PlanParam added in v0.17.0

type PlanParam struct {
	PricedAs string                 `yaml:"pricedAs"`
	Schema   map[string]interface{} `yaml:"schema"`
}

type PlansConfig added in v0.17.0

type PlansConfig struct {
	HostingPlans   map[int]HostingPlan   `yaml:"hostingPlans"`
	WorkspacePlans map[int]WorkspacePlan `yaml:"workspacePlans"`
}

type PostgresConfig added in v0.17.0

type PostgresConfig struct {
	Mode          string                 `yaml:"mode,omitempty"`
	CACertPem     string                 `yaml:"caCertPem,omitempty"`
	Primary       *PostgresPrimaryConfig `yaml:"primary,omitempty"`
	Replica       *PostgresReplicaConfig `yaml:"replica,omitempty"`
	ServerAddress string                 `yaml:"serverAddress,omitempty"`
	AltName       string                 `yaml:"altName,omitempty"`
	Port          int                    `yaml:"port,omitempty"`
	Database      string                 `yaml:"database,omitempty"`
}

type PostgresPrimaryConfig added in v0.17.0

type PostgresPrimaryConfig struct {
	SSLConfig SSLConfig `yaml:"sslConfig"`
	IP        string    `yaml:"ip"`
	Hostname  string    `yaml:"hostname"`
}

type PostgresReplicaConfig added in v0.17.0

type PostgresReplicaConfig struct {
	IP        string    `yaml:"ip"`
	Name      string    `yaml:"name"`
	SSLConfig SSLConfig `yaml:"sslConfig"`
}

type PrometheusConfig added in v0.17.0

type PrometheusConfig struct {
	RemoteWrite *RemoteWriteConfig `yaml:"remoteWrite,omitempty"`
	Override    ChartOverride      `yaml:"override,omitempty"`
}

type PushGatewayConfig added in v1.17.0

type PushGatewayConfig struct {
	Override ChartOverride `yaml:"override,omitempty"`
}

type RegistryConfig

type RegistryConfig struct {
	Server              string `yaml:"server"`
	ReplaceImagesInBom  bool   `yaml:"replaceImagesInBom"`
	LoadContainerImages bool   `yaml:"loadContainerImages"`
}

type RemoteWriteConfig added in v0.17.0

type RemoteWriteConfig struct {
	Enabled     bool   `yaml:"enabled"`
	ClusterName string `yaml:"clusterName,omitempty"`
	Url         string `yaml:"url,omitempty"`
	Username    string `yaml:"username,omitempty"`
	Password    string `yaml:"-"`
}

type RgwLoadBalancerConfig added in v1.17.0

type RgwLoadBalancerConfig struct {
	Enabled  bool          `yaml:"enabled"`
	Override ChartOverride `yaml:"override,omitempty"`
}

type RookExternalClusterConfig added in v1.17.0

type RookExternalClusterConfig struct {
	Enabled bool `yaml:"enabled"`
}

type RootConfig

type RootConfig struct {
	Datacenter             DatacenterConfig              `yaml:"dataCenter"`
	DataCenters            []DatacenterConfig            `yaml:"dataCenters,omitempty"`
	DefaultDataCenterID    int                           `yaml:"defaultDataCenterId,omitempty"`
	Secrets                SecretsConfig                 `yaml:"secrets"`
	Registry               *RegistryConfig               `yaml:"registry,omitempty"`
	Postgres               PostgresConfig                `yaml:"postgres"`
	Ceph                   CephConfig                    `yaml:"ceph"`
	Kubernetes             KubernetesConfig              `yaml:"kubernetes"`
	Cluster                ClusterConfig                 `yaml:"cluster"`
	MetalLB                *MetalLBConfig                `yaml:"metallb,omitempty"`
	Codesphere             CodesphereConfig              `yaml:"codesphere"`
	PcApps                 ChartValues                   `yaml:"pcApps,omitempty"`
	ManagedServiceBackends *ManagedServiceBackendsConfig `yaml:"managedServiceBackends,omitempty"`
	Operations             *OperationsConfig             `yaml:"operations,omitempty"`
}

RootConfig represents the relevant parts of the configuration file

func NewRootConfig added in v0.27.2

func NewRootConfig() RootConfig

func (*RootConfig) Clone added in v1.296.0

func (c *RootConfig) Clone() (*RootConfig, error)

Clone returns a deep copy of the config, so a caller can derive a new config without sharing the original's maps, slices and pointers. It round-trips through YAML, so — like any other load of this config — keys the struct does not model are not carried over.

func (*RootConfig) ExtractBomRefs

func (c *RootConfig) ExtractBomRefs() []string

func (*RootConfig) Marshal added in v0.17.0

func (c *RootConfig) Marshal() ([]byte, error)

Marshal serializes the RootConfig to YAML

func (*RootConfig) Unmarshal added in v0.17.0

func (c *RootConfig) Unmarshal(data []byte) error

Unmarshal deserializes YAML data into the RootConfig

type S3ManagedServiceConfig added in v1.79.0

type S3ManagedServiceConfig struct {
	Override ChartOverride `yaml:"override,omitempty"`
}

type SSLConfig added in v0.17.0

type SSLConfig struct {
	ServerCertPem string `yaml:"serverCertPem"`
}

type SecretEntry added in v0.17.0

type SecretEntry struct {
	Name   string        `yaml:"name"`
	File   *SecretFile   `yaml:"file,omitempty"`
	Fields *SecretFields `yaml:"fields,omitempty"`
}

type SecretFields added in v0.17.0

type SecretFields struct {
	Username string `yaml:"username,omitempty"`
	Password string `yaml:"password"`
}

type SecretFile added in v0.17.0

type SecretFile struct {
	Name    string `yaml:"name"`
	Content string `yaml:"content"`
}

type SecretsConfig added in v0.17.0

type SecretsConfig struct {
	BaseDir string `yaml:"baseDir"`
}

type ServicePlan added in v0.17.0

type ServicePlan struct {
	ID          int                  `yaml:"id"`
	Description string               `yaml:"description"`
	Name        string               `yaml:"name"`
	Parameters  map[string]PlanParam `yaml:"parameters"`
}

type TelemetryExport added in v1.168.0

type TelemetryExport struct {
	RemoteEndpoint string `yaml:"remoteEndpoint"`
	RemoteExport   bool   `yaml:"remoteExport"`
	Traces         bool   `yaml:"traces"`
	TraceEndpoint  string `yaml:"traceEndpoint,omitempty"`
	SpanMetrics    bool   `yaml:"spanMetrics"`
}

type TrustManagerConfig added in v1.79.0

type TrustManagerConfig struct {
	Override ChartOverride `yaml:"override,omitempty"`
}

type UnderprovisionFactors added in v0.17.0

type UnderprovisionFactors struct {
	CPU    float64 `yaml:"cpu"`
	Memory float64 `yaml:"memory"`
}

type WorkspaceImagesConfig added in v0.17.0

type WorkspaceImagesConfig struct {
	Agent    *ImageRef `yaml:"agent,omitempty"`
	AgentGpu *ImageRef `yaml:"agentGpu,omitempty"`
	Server   *ImageRef `yaml:"server,omitempty"`
	VPN      *ImageRef `yaml:"vpn,omitempty"`
}

type WorkspacePlan added in v0.17.0

type WorkspacePlan struct {
	Name          string `yaml:"name"`
	HostingPlanID int    `yaml:"hostingPlanId"`
	MaxReplicas   int    `yaml:"maxReplicas"`
	OnDemand      bool   `yaml:"onDemand"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL