deploy

package
v0.0.0-...-090f0e2 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: Apache-2.0 Imports: 46 Imported by: 6

Documentation

Index

Constants

View Source
const OperationPreemptedCode = "OperationPreempted"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	RPs           []RPConfig     `json:"rps,omitempty"`
	Configuration *Configuration `json:"configuration,omitempty"`
}

Config represents configuration object for deployer tooling

func DevConfig

func DevConfig(_env env.Core) (*Config, error)

type Configuration

type Configuration struct {
	ACRLocationOverride               *string                `json:"acrLocationOverride,omitempty"`
	ACRResourceID                     *string                `json:"acrResourceId,omitempty" value:"required"`
	AzureCloudName                    *string                `json:"azureCloudName,omitempty" value:"required"`
	AzureSecPackQualysUrl             *string                `json:"azureSecPackQualysUrl,omitempty"`
	AzureSecPackVSATenantId           *string                `json:"azureSecPackVSATenantId,omitempty"`
	RPVersionStorageAccountName       *string                `json:"rpVersionStorageAccountName,omitempty" value:"required"`
	ACRReplicaDisabled                *bool                  `json:"acrReplicaDisabled,omitempty"`
	AdminAPICABundle                  *string                `json:"adminApiCaBundle,omitempty"`
	AdminAPIClientCertCommonName      *string                `json:"adminApiClientCertCommonName,omitempty" value:"required"`
	ARMAPICABundle                    *string                `json:"armApiCaBundle,omitempty"`
	ARMAPIClientCertCommonName        *string                `json:"armApiClientCertCommonName,omitempty"`
	ARMClientID                       *string                `json:"armClientId,omitempty"`
	ClusterMDMAccount                 *string                `json:"clusterMdmAccount,omitempty" value:"required"`
	ClusterMDSDAccount                *string                `json:"clusterMdsdAccount,omitempty" value:"required"`
	ClusterMDSDConfigVersion          *string                `json:"clusterMdsdConfigVersion,omitempty" value:"required"`
	ClusterMDSDNamespace              *string                `json:"clusterMdsdNamespace,omitempty" value:"required"`
	ClusterParentDomainName           *string                `json:"clusterParentDomainName,omitempty" value:"required"`
	DatabaseAccountName               *string                `json:"databaseAccountName,omitempty" value:"required"`
	CosmosDB                          *CosmosDBConfiguration `json:"cosmosDB,omitempty"`
	DisableCosmosDBFirewall           *bool                  `json:"disableCosmosDBFirewall,omitempty"`
	ExtraCosmosDBIPs                  []string               `json:"extraCosmosDBIPs,omitempty"`
	FluentbitImage                    *string                `json:"fluentbitImage,omitempty" value:"required"`
	FPClientID                        *string                `json:"fpClientId,omitempty" value:"required"`
	FPTenantID                        *string                `json:"fpTenantId,omitempty" value:"required"`
	FPServerCertCommonName            *string                `json:"fpServerCertCommonName,omitempty"`
	FPServicePrincipalID              *string                `json:"fpServicePrincipalId,omitempty" value:"required"`
	GatewayDomains                    []string               `json:"gatewayDomains,omitempty"`
	GatewayFeatures                   []string               `json:"gatewayFeatures,omitempty"`
	GatewayMDSDConfigVersion          *string                `json:"gatewayMdsdConfigVersion,omitempty" value:"required"`
	GatewayVMSize                     *string                `json:"gatewayVmSize,omitempty"`
	GatewayVMSSCapacity               *int                   `json:"gatewayVmssCapacity,omitempty"`
	GlobalResourceGroupName           *string                `json:"globalResourceGroupName,omitempty" value:"required"`
	GlobalResourceGroupLocation       *string                `json:"globalResourceGroupLocation,omitempty" value:"required"`
	GlobalSubscriptionID              *string                `json:"globalSubscriptionId,omitempty" value:"required"`
	GlobalDevopsManagedIdentity       *string                `json:"globalDevopsManagedIdentity,omitempty"`
	KeyvaultDNSSuffix                 *string                `json:"keyvaultDNSSuffix,omitempty" value:"required"`
	KeyvaultPrefix                    *string                `json:"keyvaultPrefix,omitempty" value:"required"`
	MDMFrontendURL                    *string                `json:"mdmFrontendUrl,omitempty" value:"required"`
	MDSDEnvironment                   *string                `json:"mdsdEnvironment,omitempty" value:"required"`
	MiseValidAudiences                []string               `json:"miseValidAudiences,omitempty"`
	MiseValidAppIDs                   []string               `json:"miseValidAppIDs,omitempty"`
	NonZonalRegions                   []string               `json:"nonZonalRegions,omitempty"`
	PortalAccessGroupIDs              []string               `json:"portalAccessGroupIds,omitempty" value:"required"`
	PortalClientID                    *string                `json:"portalClientId,omitempty" value:"required"`
	PortalElevatedGroupIDs            []string               `json:"portalElevatedGroupIds,omitempty" value:"required"`
	RPFeatures                        []string               `json:"rpFeatures,omitempty"`
	RPImagePrefix                     *string                `json:"rpImagePrefix,omitempty" value:"required"`
	RPMDMAccount                      *string                `json:"rpMdmAccount,omitempty" value:"required"`
	RPMDSDAccount                     *string                `json:"rpMdsdAccount,omitempty" value:"required"`
	RPMDSDConfigVersion               *string                `json:"rpMdsdConfigVersion,omitempty" value:"required"`
	RPMDSDNamespace                   *string                `json:"rpMdsdNamespace,omitempty" value:"required"`
	RPNSGPortalSourceAddressPrefixes  []string               `json:"rpNsgPortalSourceAddressPrefixes,omitempty"`
	RPParentDomainName                *string                `json:"rpParentDomainName,omitempty" value:"required"`
	RPVMSSCapacity                    *int                   `json:"rpVmssCapacity,omitempty"`
	SSHPublicKey                      *string                `json:"sshPublicKey,omitempty"`
	SubscriptionResourceGroupName     *string                `json:"subscriptionResourceGroupName,omitempty" value:"required"`
	SubscriptionResourceGroupLocation *string                `json:"subscriptionResourceGroupLocation,omitempty" value:"required"`
	VMSize                            *string                `json:"vmSize,omitempty" value:"required"`
	VMSSCleanupEnabled                *bool                  `json:"vmssCleanupEnabled,omitempty"`
	OIDCStorageAccountName            *string                `json:"oidcStorageAccountName,omitempty" value:"required"`
	OtelAuditQueueSize                *string                `json:"otelAuditQueueSize,omitempty" value:"required"`
	MsiRpEndpoint                     *string                `json:"msiRpEndpoint,omitempty" value:"required"`
	TokenContributorRoleID            *string                `json:"tokenContributorRoleID,omitempty" value:"required"`
	TokenContributorRoleName          *string                `json:"tokenContributorRoleName,omitempty" value:"required"`

	// Log levels for ARO services running on the VMSSes
	RPLogLevel           *string `json:"rpLogLevel,omitempty"`
	GatewayLogLevel      *string `json:"gatewayLogLevel,omitempty"`
	PortalLogLevel       *string `json:"portalLogLevel,omitempty"`
	MonitorLogLevel      *string `json:"monitorLogLevel,omitempty"`
	MimoActuatorLogLevel *string `json:"mimoActuatorLogLevel,omitempty"`

	// TODO: Replace with Live Service Configuration in KeyVault
	InstallViaHive           *string `json:"clustersInstallViaHive,omitempty"`
	DefaultInstallerPullspec *string `json:"clusterDefaultInstallerPullspec,omitempty"`
	AdoptByHive              *string `json:"clustersAdoptByHive,omitempty"`
}

Configuration represents configuration structure

type CosmosDBConfiguration

type CosmosDBConfiguration struct {
	StandardProvisionedThroughput int `json:"standardProvisionedThroughput,omitempty"`
	PortalProvisionedThroughput   int `json:"portalProvisionedThroughput,omitempty"`
	GatewayProvisionedThroughput  int `json:"gatewayProvisionedThroughput,omitempty"`
}

Note: if this configuration block is provided, all throughputs must be present and valid

type Deployer

type Deployer interface {
	PreDeploy(context.Context, int) error
	DeployRP(context.Context) error
	DeployGateway(context.Context) error
	UpgradeRP(context.Context) error
	UpgradeGateway(context.Context) error
	SaveVersion(context.Context) error
}

func New

func New(ctx context.Context, _env env.Core, config *RPConfig, version string, tokenCredential azcore.TokenCredential) (Deployer, error)

New initiates new deploy utility object

type KnownDeploymentErrorType

type KnownDeploymentErrorType string

KnownDeploymentErrorType represents a type of error we encounter during an RP/gateway deployment that we know how to handle via automation.

const (
	KnownDeploymentErrorTypeRPLBNotFound KnownDeploymentErrorType = "RPLBNotFound"
)

type RPConfig

type RPConfig struct {
	Location                 string         `json:"location,omitempty"`
	SubscriptionID           string         `json:"subscriptionId,omitempty"`
	GatewayResourceGroupName string         `json:"gatewayResourceGroupName,omitempty"`
	RPResourceGroupName      string         `json:"rpResourceGroupName,omitempty"`
	Configuration            *Configuration `json:"configuration,omitempty"`
}

RPConfig represents individual RP configuration

func GetConfig

func GetConfig(path, location string) (*RPConfig, error)

GetConfig return RP configuration from the file

func ResolveConfig

func ResolveConfig(config *Config, location string) (*RPConfig, error)

ResolveConfig return RP configuration from the env config

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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