Categorygithub.com/evergreen-ci/evergreen
modulepackage
0.0.0-20250308170929-48bd8ed27534
Repository: https://github.com/evergreen-ci/evergreen.git
Documentation: pkg.go.dev

# README

See the docs for user-facing documentation, or in the repo if you don't have access to internal MongoDB sites.

See the API docs for developer documentation. For an overview of the architecture, see the list of directories and their descriptions at the bottom of that page.

Features

Elastic Host Allocation

Use only the computing resources you need.

Clean UI

Easily navigate the state of your tests, logs, and commit history.

Multiplatform Support

Run jobs on any platform Go can cross-compile to.

Spawn Hosts

Spin up a copy of any machine in your test infrastructure for debugging.

Patch Builds

See test results for your code changes before committing.

Stepback on Failure

Automatically run past commits to pinpoint the origin of a test failure.

Go Requirements

Building the Binaries

Setup:

  • If you're going to use the makefile, set GOMODCACHE (you can just set it to the output of go env GOMODCACHE, unless you want it somewhere else).
  • check out a copy of the repo into your gopath. You can use: go get github.com/evergreen-ci/evergreen or just git clone https://github.com/evergreen-ci/evergreen.

Possible Targets:

  • run make build to compile a binary for your local system.
  • run make dist to compile binaries for all supported systems and create a dist tarball with all artifacts.
  • run make local-evergreen to start a local Evergreen. You will need a mongod running, listening on 27017. Log in at http://localhost:9090/login with user admin and password password. Visiting http://localhost:9090/ should show you the waterfall. The new UI is available at https://github.com/evergreen-ci/spruce.

# Packages

Package agent runs tasks on differents runtime environments, such as hosts and containers.
Package api provides common functions used by the service and graphql packages.
Package apimodels provides models used across multiple packages by the REST API.
Package auth defines how Evergreen users authenticate to various authentication back ends.
Package cloud handles interactions with third-party cloud providers.
No description provided by the author
Package db manages Evergreen's interaction with the database.
Code generated by graphql/redact_secrets_plugin.go DO NOT EDIT.
Package mock provides a mock environment for testing.
Package model defines Evergreen's data model.
Package operations provides commands for the CLI, which is also the binary for the server and agent.
Package plugin provides a handful of UI plugins that are not part of core Evergreen.
Package repotracker tracks GitHub repositories, listening for new commits and pull requests.
Package rest provides an API for Evergreen users, as well as the GraphQL interface.
Package scheduler orders tasks in distro queues.
Package service exposes core UI and API endpoints.
No description provided by the author
No description provided by the author
No description provided by the author
Package thirdparty defines interactions with third-party services but not cloud providers, which are in cloud.
Package trigger defines triggers that map events to notifications.
Package units contains amboy.Job definitions.
Package util contains utility functions depended on by many other packages.
Package validator checks that project configuration files and distro settings are correct.

# Functions

FindEvergreenHome finds the directory of the EVGHOME environment variable.
GetConfig returns the complete Evergreen configuration with overrides applied from the [ConfigCollection] collection in the [DB] database.
GetDisplayNameForPermissionKey gets the display name associated with a permission key.
GetEnvironment returns the global application level environment.
GetPermissionLevelsForPermissionKey gets all permissions associated with a permission key.
GetRawConfig returns only the raw Evergreen configuration without applying overrides.
No description provided by the author
InternalRequesterToUserRequester translates an internal requester type to a user-facing requester type.
IsDockerProvider returns true if the provider is docker.
IsEc2Provider returns true if the provider is ec2.
No description provided by the author
No description provided by the author
No description provided by the author
IsFinishedVersionStatus returns true if the version or patch is true.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
IsSystemActivator returns true when the task activator is Evergreen.
No description provided by the author
No description provided by the author
IsValidEC2Tenancy returns if the given EC2 tenancy is valid.
No description provided by the author
No description provided by the author
NewEnvironment constructs an Environment instance and initializes all essential global state, including establishing a new connection to the database and creating a new set of worker queues.
NewSettings builds an in-memory representation of the given settings file.
No description provided by the author
SetBanner sets the text of the Evergreen site-wide banner.
SetBannerTheme sets the text of the Evergreen site-wide banner.
No description provided by the author
SetServiceFlags sets whether each of the runner/API server processes is enabled.
No description provided by the author
UpdateConfig updates all evergreen settings documents in the DB.
UserRequesterToInternalRequester translates a user-facing requester type to its equivalent internal requester type.
ValidateSSHKey errors if the given key does not start with one of the allowed prefixes.

# Constants

No description provided by the author
periodic build.
No description provided by the author
No description provided by the author
Common OTEL constants and attribute keys.
Constants for permission scopes and resource types.
Constants for permission scopes and resource types.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
APIServerTaskActivator represents Evergreen's internal API activator.
No description provided by the author
No description provided by the author
No description provided by the author
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Recognized Evergreen agent CPU architectures, which should be in the form ${GOOS}_${GOARCH}.
Constants for project command names.
Constants for project command names.
Constants for project command names.
No description provided by the author
AutoRestartActivator represents the activator for tasks that have been automatically restarted via the retry_on_failure command flag.
AWSClientTypeMock is the mock implementation of an AWS client for testing purposes only.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
BuildActivator represents the activator for builds that have been activated.
No description provided by the author
No description provided by the author
build otel attributes.
Common OTEL constants and attribute keys.
No description provided by the author
No description provided by the author
CAName is the name of the root CA for the TLS credentials.
CheckBlockedTasksActivator represents the activator for task deactivated by the check blocked tasks job.
No description provided by the author
No description provided by the author
Task Command Types.
CommitQueueAlias and GithubPRAlias are special aliases to specify variants and tasks for the merge queue and GitHub PR patches.
ContainerHealthDashboard is the name of the Splunk dashboard that displays charts relating to the health of container tasks.
No description provided by the author
No description provided by the author
No description provided by the author
CredentialsCollection is the collection containing TLS credentials to connect to a Jasper service running on a host.
No description provided by the author
DefaultAmboyQueueName is the default namespace prefix for the Amboy remote queue.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
DefaultEBSAvailabilityZone is the default availability zone for EBS volumes.
DefaultEBSType is Amazon's default EBS type.
DefaultEC2Region is the default region where hosts should be spawned and general Evergreen operations occur in AWS if no particular region is specified.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Common OTEL constants and attribute keys.
Constants for permission scopes and resource types.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ElapsedBuildActivator represents the activator for batch time builds that have their batchtimes elapsed.
ElapsedTaskActivator represents the activator for batch time tasks that have their batchtimes elapsed.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Env vars.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
GenerateTasksActivator represents the activator for tasks that have been generated by a task generator.
Constants for project command names.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
GitHub merge queue.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
GitHubRetryAttempts is the github client maximum number of attempts.
GitHubRetryMinDelay is the github client's minimum amount of delay before attempting another request.
No description provided by the author
No description provided by the author
No description provided by the author
HeartbeatTimeoutThreshold is the timeout for how long a task can run without sending a heartbeat.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
HostBuilding is an intermediate state indicating that the intent host is attempting to create a real host from an intent host, but has not successfully done so yet.
HostBuildingFailed is a failure state indicating that an intent host was attempting to create a host but failed during creation.
Constants for project command names.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
HostProvisionFailed is a failure state indicating that a host was successfully created (i.e.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Common OTEL constants and attribute keys.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
MaxAutomaticRestarts is the maximum number of automatic restarts allowed for a task.
maximum turnaround we want to maintain for all hosts for a given distro.
No description provided by the author
MaxTaskDispatchAttempts is the maximum number of times a task can be dispatched before it is considered to be in a bad state.
maximum task priority.
MaxTeardownGroupThreshold specifies the duration after which the host should no longer continue to tear down a task group.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ModifySpawnHostManual means the spawn host is being modified manually because a user requested it.
ModifySpawnHostManual means the spawn host is being modified by the automatic sleep schedule.
No description provided by the author
No description provided by the author
Constants for Evergreen package names (including legacy ones).
NameTimeFormat is the format in which to log times like instance start time.
if a patch has NumTasksForLargePatch number of tasks or greater, we log to splunk for investigation.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
No description provided by the author
version requester types.
User-facing requester types.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
PresignMinimumValidTime is the minimum amount of time that a presigned URL should be valid for.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
Constants for permission scopes and resource types.
ProjectStorageMethodDB indicates that the parser project is stored as a single document in a DB collection.
ProjectStorageMethodS3 indicates that the parser project is stored as a single object in S3.
Constants related to cloud providers and provider-specific settings.
Constants related to cloud providers and provider-specific settings.
Constants related to cloud providers and provider-specific settings.
Constants related to cloud providers and provider-specific settings.
Constants related to cloud providers and provider-specific settings.
Constants related to cloud providers and provider-specific settings.
PRTasksRunningDescription is the description for a GitHub PR status indicating that there are still running tasks.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
RedactedValue is the value that is shown in the REST API and UI for redacted values.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Restart Types.
Constants for permission scopes and resource types.
No description provided by the author
Constants for Evergreen package names (including legacy ones).
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
SenderGithubStatus sends messages to GitHub like PR status updates.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Constants for project command names.
Spawn hosts.
No description provided by the author
No description provided by the author
StaleContainerTaskMonitor is the special name representing the unit responsible for monitoring container tasks that have not dispatched but have waiting for a long time since their activation.
StepbackTaskActivator represents the activator for tasks activated due to stepback.
No description provided by the author
No description provided by the author
Constants for permission scopes and resource types.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
host resource tag names.
No description provided by the author
No description provided by the author
No description provided by the author
TaskAborted indicates that the task was aborted while it was running.
TaskAll is not a status, but rather a UI filter indicating that it should select all tasks regardless of their status.
TaskDescriptionAborted indicates that the reason a task failed is specifically because it was manually aborted.
TaskDescriptionContainerUnallocatable indicates that the reason a container task failed is because it cannot be allocated a container.
Task descriptions TaskDescriptionHeartbeat indicates that a task failed because it did not send a heartbeat while it was running.
TaskDescriptionNoResults indicates that a task failed because it did not post any test results.
TaskDescriptionResultsFailed indicates that a task failed because the test results contained a failure.
TaskDescriptionStranded indicates that a task failed because its underlying runtime environment (i.e.
TaskDispatched indicates that an agent has received the task, but the agent has not yet told Evergreen that it's running the task.
Common OTEL constants and attribute keys.
TaskFailed indicates that the task has finished and failed.
Common OTEL constants and attribute keys.
No description provided by the author
task otel attributes.
TaskInactive is a deprecated legacy status that used to mean that the task was not scheduled to run.
TaskKnownIssue indicates that the task has failed and is being tracked by a linked issue in the task annotations.
Common OTEL constants and attribute keys.
No description provided by the author
No description provided by the author
No description provided by the author
TaskStarted indicates a task is running on an agent.
TaskStatusBlocked indicates that the task cannot run because it is blocked by an unattainable dependency.
Common OTEL constants and attribute keys.
TaskStatusPending is a special state that's used for one specific return value.
The task statuses below indicate that a task has finished.
All other task failure reasons other than TaskFailed are display statuses, so they're only used in the UI.
No description provided by the author
Task Statuses that are only used by the UI, event log and tests (these may be used in old tasks as actual task statuses rather than just task display statuses).
Common OTEL constants and attribute keys.
No description provided by the author
No description provided by the author
TaskUndispatched indicates either: 1.
TaskUnscheduled indicates that the task is undispatched and is not scheduled to eventually run.
TaskWillRun indicates that the task is scheduled to eventually run, unless one of its dependencies becomes unattainable.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Constants for Evergreen package names (including legacy ones).
No description provided by the author
UnderwaterTaskUnscheduler is the caller associated with unscheduling and disabling tasks older than the task.UnschedulableThreshold from their distro queue.
Constants for permission scopes and resource types.
User is the generic user representing the Evergreen application as a whole entity.
VersionAborted is a display status only and not stored in the DB.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
No description provided by the author
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
No description provided by the author
Common OTEL constants and attribute keys.
version otel attributes.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
No description provided by the author
Common OTEL constants and attribute keys.
Common OTEL constants and attribute keys.
No description provided by the author
Common OTEL constants and attribute keys.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

ActiveStatuses includes all where the host is alive in the cloud provider or could be alive (e.g.
Constants related to permission levels.
Agent version to control agent rollover.
No description provided by the author
No description provided by the author
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
BuildRevision should be specified with -ldflags at build time.
ClientVersion is the commandline version string used to control updating the CLI.
No description provided by the author
No description provided by the author
ContainerPool keys.
DevProdJiraServiceField defines a required field for DEVPROD tickets, which we sometimes auto-generate.
Constants related to permission levels.
No description provided by the author
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
DownHostStatus is a list of all host statuses that are considered down.
Contains both general and superuser access.
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
No description provided by the author
IsRunningOrWillRunStatuses includes all statuses for active hosts (see ActiveStatus) where the host is either currently running or is making progress towards running.
Constants related to permission levels.
Constants related to permission levels.
No description provided by the author
NotRunningStatus is a list of host statuses from before the host starts running.
Constants related to permission levels.
No description provided by the author
Constants related to permission levels.
Constants related to permission levels.
Admin permissions.
No description provided by the author
No description provided by the author
Distro permissions.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Project permissions.
No description provided by the author
don't ever access this directly except from testutil.
No description provided by the author
Constants related to permission levels.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
SingleTaskDistro Keys.
No description provided by the author
ProviderSpawnable includes all cloud provider types where hosts can be dynamically created and terminated according to need.
ProviderUserSpawnable includes all cloud provider types where a user can request a dynamically created host for purposes such as host.create and spawn hosts.
ProvisioningHostStatus describes hosts that have started, but have not yet completed the provisioning process.
Constants related to permission levels.
SleepScheduleStatuses are all host statuses for which the sleep schedule can take effect.
StoppableHostStatuses represent all host statuses when it is possible to start a stopped host.
No description provided by the author
StoppableHostStatuses represent all host statuses when it is possible to stop a running host.
No description provided by the author
SuperUserPermissions resource ID.
No description provided by the author
No description provided by the author
SystemVersionRequesterTypes contain non-patch requesters that are created by the Evergreen system, i.e.
TaskCompletedStatuses are statuses for tasks that have finished running.
TaskFailureStatuses represent all the ways that a completed task can fail, inclusive of display statuses such as system failures.
TaskInProgressStatuses have been picked up by an agent but have not finished running.
TaskNonGenericFailureStatuses represents some kind of specific abnormal failure mode.
Constants related to permission levels.
Constants related to permission levels.
Constants related to permission levels.
No description provided by the author
Constants related to permission levels.
TaskSystemFailureStatuses contains only system failure statuses used by the UI and event logs.
TaskUncompletedStatuses are all statuses that do not represent a finished state.
No description provided by the author
UpHostStatus is a list of all host statuses that are considered up.
No description provided by the author
Map from valid OS/architecture combinations to display names.
No description provided by the author
ValidContainerArchitectures contains all recognized container CPU architectures.
ValidContainerOperatingSystems contains all recognized container operating systems.
No description provided by the author
No description provided by the author
No description provided by the author
ValidEC2Tenancies represents valid EC2 tenancy values.
No description provided by the author
No description provided by the author
Set of valid Host Allocators types.
No description provided by the author
No description provided by the author
Set of valid DispatchSettings.Version strings that can be user set via the API.
Set of valid FinderSettings.Version strings that can be user set via the API.
Set of valid PlannerSettings.Version strings that can be user set via the API.
Set of host status values that can be user set via the API.
ValidWindowsVersions contains all recognized container Windows versions.

# Structs

No description provided by the author
AmboyDBConfig configures Amboy's database connection.
AmboyNamedQueueConfig represents configuration settings for particular named queues in the Amboy queue group.
AmboyRetryConfig represents configuration settings for Amboy's retryability feature.
No description provided by the author
APIConfig holds relevant log and listener settings for the API server.
AuthConfig contains the settings for the various auth managers.
AuthUser configures a user for our Naive authentication setup.
AWSConfig stores auth info for Amazon Web Services.
AWSPodConfig represents configuration for using pods backed by AWS.
AWSVPCConfig represents configuration when using AWSVPC networking in ECS.
BetaFeatures represents beta tests, which may be active or inactive.
BucketConfig represents the admin config for an individual bucket.
BucketsConfig represents the admin config section for interally-owned Evergreen data bucket storage.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
CloudProviders stores configuration settings for the supported cloud host providers.
No description provided by the author
ContainerPool holds settings for each container pool.
No description provided by the author
No description provided by the author
DockerConfig stores auth info for Docker.
EC2Key links a region with a corresponding key and secret.
ECSCapacityProvider represents a capacity provider in ECS.
ECSClusterConfig represents configuration specific to a particular ECS cluster.
ECSConfig represents configuration for AWS ECS.
GithubAuthConfig contains settings for interacting with Github Authentication including the ClientID, ClientSecret and CallbackUri which are given when registering the application Furthermore,.
GitHubCheckRunConfig configures settings for the GitHub Check Run API.
HostInitConfig holds logging settings for the hostinit process.
HostJasperConfig represents the configuration of the Jasper service running on non-legacy hosts.
No description provided by the author
JiraConfig stores auth info for interacting with Atlassian Jira.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
KanopyAuthConfig configures the auth method that validates and consumes the JWT that Kanopy provides with information about the user.
No description provided by the author
No description provided by the author
MultiAuthConfig contains settings for using multiple authentication mechanisms.
NaiveAuthConfig contains a list of AuthUsers from the settings file.
No description provided by the author
NotifyConfig hold logging and email settings for the notify package.
No description provided by the author
No description provided by the author
OverridesConfig overrides individual fields from other configuration documents.
No description provided by the author
ParameterStoreConfig stores configuration for using SSM Parameter Store.
ParserProjectS3Config is the configuration options for storing and accessing parser projects in S3.
No description provided by the author
PersistentDNSConfig is the configuration options to support persistent DNS names for hosts.
PodLifecycleConfig holds logging settings for the pod init process.
No description provided by the author
No description provided by the author
No description provided by the author
RepoTrackerConfig holds settings for polling project repositories.
No description provided by the author
No description provided by the author
SchedulerConfig holds relevant settings for the scheduler process.
SecretsManagerConfig represents configuration for AWS Secrets Manager.
ServiceFlags holds the state of each of the runner/API processes.
SESConfig configures the SES email sender.
Settings contains all configuration settings for running Evergreen.
No description provided by the author
No description provided by the author
SleepScheduleConfig holds relevant settings for unexpirable host sleep schedules.
No description provided by the author
No description provided by the author
SSHKeyPair represents a public and private SSH key pair.
No description provided by the author
TaskLimitsConfig holds relevant settings for Evergreen task limitations.
TestSelectionConfig represents the configuration of the test selection service.
TracerConfig configures the OpenTelemetry tracer provider.
No description provided by the author
UIConfig holds relevant settings for the UI server.
UserManagerInfo lists properties of the UserManager regarding its support for certain features.
No description provided by the author
No description provided by the author

# Interfaces

ConfigSection defines a sub-document in the evergreen config any config sections must also be added to the registry in config_sections.go.
Environment provides application-level services (e.g.

# Type aliases

AWSClientType represents the different types of AWS client implementations that can be used.
supported banner themes in Evergreen.
No description provided by the author
ContainerArch represents the CPU architecture necessary to run a container.
ContainerOS denotes the operating system of a running container.
No description provided by the author
EC2Tenancy represents the physical hardware tenancy for EC2 hosts.
ECSArch represents a CPU architecture that can run containers in ECS.
ECSOS represents an OS that can run containers in ECS.
ECSWindowsVersion represents a particular Windows OS version that can run containers in ECS.
LogViewer represents recognized viewers for rendering logs.
No description provided by the author
ModifySpawnHostSource determines the originating source of a spawn host modification.
ParserProjectStorageMethod represents a means to store the parser project.
PluginConfig holds plugin-specific settings, which are handled.
No description provided by the author
UserRequester represents the allowed user-facing requester types.
WindowsVersion specifies the compatibility version of Windows that is required for the container to run.