Skip to content

Configuration Reference#

This section lists the environment variables used to configure the MSR migration process, along with their default values and expected behavior.

INSERT_HARBOR_PROJECTS_SQL#

File including SQL statements to create projects.

Default: harbor_projects.sql

INSERT_HARBOR_PROJECTS_USER_GROUPS_SQL#

File including SQL statements to create user groups. Maps <team-name> on Enzi to <organization>-<team-name>.

Default: harbor_projects_user_groups.sql

INSERT_HARBOR_ORGANIZATIONS_USER_GROUPS_SQL#

File including SQL statements to create user groups. Maps <team-name> on Enzi to <team-name>.

Default: harbor_organizations_user_groups.sql

INSERT_HARBOR_MSR_REPO_TEAM_TO_PROJECTS_MEMBERS_SQL#

File with SQL statements to grant user permissions to projects. Maps repository_team_access.

Default: harbor_msr_team_to_project_member.sql

INSERT_HARBOR_MSR_ORG_TEAM_TO_PROJECTS_MEMBERS_SQL#

File with SQL statements to grant user permissions to projects. Maps namespace_team_access.

Default: harbor_msr_org_to_project_member.sql

INSERT_HARBOR_PROJECT_METADATA_SQL#

File with SQL to attach project metadata, including visibility and scanOnPush settings.

Default: harbor_project_metadata.sql

INSERT_HARBOR_PROJECT_QUOTA_SQL#

File including SQL statements to configure project quotas. Default is unlimited storage per project.

Default: harbor_project_quota.sql

INSERT_HARBOR_IMMUTABLE_TAG_RULE_SQL#

File including SQL to add immutability tag rules to projects.

Default: harbor_immutable_tag_rule.sql

INSERT_HARBOR_RETENTION_POLICY_SQL#

File including SQL to create retention rules. Maps part of the pruning policies.

Default: harbor_retention_policy.sql

INSERT_HARBOR_PUSH_MIRRORING_POLICIES_SQL#

File including SQL to define push replication policies.

Default: harbor_push_mirroring_policies.sql

INSERT_HARBOR_POLL_MIRRORING_POLICIES_SQL#

File including SQL to define pull replication policies.

Default: harbor_poll_mirroring_policies.sql

HARBOR_API_BASE_URL#

Hostname or IP for connecting to the API.

Default: localhost

HARBOR_API_USER#

Username for connecting to the API.

Default: admin

HARBOR_API_PASSWORD#

Password for connecting to the API.

Default: MSR12345

HARBOR_API_TLS_VERIFICATION#

Defines whether to verify SSL certificates. Should be true for production.

Default: None

HARBOR_API_BATCH_SIZE#

Defines the chunk size of data handled per API request.

Default: None

HARBOR_DB_PASSWORD#

Password used to connect to the MSR 4 PostgreSQL database.

Default: root123

HARBOR_DB_HOST#

Hostname or IP address for the MSR 4 PostgreSQL database.

Default: localhost

HARBOR_DB_PORT#

Port for the MSR 4 PostgreSQL database connection.

Default: 5432

HARBOR_DB_USER#

Username to connect to the MSR 4 PostgreSQL database.

Default: postgres

HARBOR_DB_NAME#

Database name for the MSR 4 PostgreSQL database.

Default: registry

HARBOR_DEFAULT_SYSTEM_ADMIN_ID#

Owner ID for all projects created during migration. Default is the MSR 4 system admin ID.

Default: 1

HARBOR_DEFAULT_REGISTRY_ID#

Registry ID where all projects and replication policies are created.

Default: 0

HARBOR_SECRET_KEY#

Secret key used to encrypt passwords for registries.

Default: secret

ENZI_RETHINKDB_HOST#

Hostname or IP for the Enzi RethinkDB database.

Default: localhost

ENZI_RETHINKDB_PORT#

Port for the Enzi RethinkDB database.

Default: 28015

ENZI_RETHINKDB_DB_NAME#

Database name for Enzi RethinkDB.

Default: enzi

ENZI_RETHINKDB_MKE_DB_NAME#

Database name for the MKE-related Enzi RethinkDB content. The default value applies to migration from an MSR 2 registry. Set this value to enzi for migration to an MSR 3 registry.

Default: enzi

ENZI_ACCOUNTS_CSV#

CSV file containing all Enzi accounts.

Default: enzi_accounts.csv

ENZI_TEAMS_CSV#

CSV file containing all Enzi teams.

Default: enzi_teams.csv

EVENT_BASED_PUSH_MIRRORING_REPLICATION_TRIGGER#

Specifies if push mirroring replication rules should have event-based trigger.

Default: false

EVENT_BASED_POLL_MIRRORING_REPLICATION_TRIGGER#

Specifies if poll mirroring replication rules should have event-based trigger.

Default: false

MSR_RETHINKDB_HOST#

Hostname or IP for the MSR 2.9, MSR 2.10 or MSR 3.1 RethinkDB database.

Default: localhost

MSR_RETHINKDB_PORT#

Port for the MSR 2.9, MSR 2.10 or MSR 3.1 RethinkDB database.

Default: 28016

MSR_RETHINKDB_DB_NAME#

Database name for the MSR 2.9, MSR 2.10 or MSR 3.1 RethinkDB.

Default: dtr2

MSR_REPO_CSV#

CSV file with all MSR 2.9, MSR 2.10 or MSR 3.1 repositories.

Default: msr_repositories.csv

MSR_REPO_WITH_TEAM_ID_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 repositories and their team IDs from repository_team_access.

Default: msr_repositories_with_team_id.csv

MSR_ORGANIZATIONS_WITH_TEAM_ID_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 organization and team ID mappings from namespace_team_access.

Default: msr_organizations_with_team_id.csv

MSR_REPO_WITH_ENZI_TEAM_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 repository and team mappings, used to import MSR 4 permissions.

Default: msr_repositories_with_enzi_team.csv

MSR_ORGANIZATIONS_WITH_ENZI_TEAM_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 organization and team mappings, used to import MSR 4 permissions.

Default: msr_organizations_with_enzi_team.csv

MSR_ORGANIZATIONS_AND_REPO_WITH_ENZI_TEAM_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 organisation or repository and team data used to map permissions to MSR 4 projects.

Default: msr_organizations_and_repo_with_enzi_team.csv

MSR_PRUNING_POLICIES_CSV#

CSV with all MSR 2.9, MSR 2.10 or MSR 3.1 pruning policies, imported as MSR 4 retention policies.

Default: msr_pruning_policies.csv

MSR_POLL_MIRRORING_POLICIES_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 pull mirroring policies imported to MSR 4.

Default: msr_poll_mirroring_policies.csv

MSR_PUSH_MIRRORING_POLICIES_CSV#

CSV with MSR 2.9, MSR 2.10 or MSR 3.1 push mirroring policies imported to MSR 4.

Default: msr_push_mirroring_policies.csv

MSR_RETHINKDB_FETCH_PAGING_SIZE#

Page size used when exporting MSR 2.9, MSR 2.10 or MSR 3.1 data to CSV. Helps limit memory usage.

Default: 1000

CSV_READER_CHUNK_SIZE#

Chunk size used to read data from CSV files. Helps limit memory usage.

Default: 1000

HARBOR_PROJECTS_CSV#

CSV containing all MSR 4 projects created.

Default: harbor_projects.csv

HARBOR_GROUPS_CSV#

CSV containing all MSR 4 user groups created.

Default: harbor_groups.csv

HARBOR_PROJECT_MEMBER_CSV#

CSV with MSR 4 group permissions attached to projects.

Default: harbor_project_membebr.csv

HARBOR_RETENTION_POLICIES_CSV#

CSV with MSR 4 retention policies attached to projects.

Default: harbor_retention_policies.csv

HARBOR_IMMUTABLE_TAG_RULES_CSV#

CSV containing all MSR 4 tag immutability rules set per project.

Default: harbor_immutable_tag_rules.csv

HARBOR_POLL_MIRRORING_POLICIES_CSV#

CSV containing MSR 4 pull replication policies migrated from the previous MSR version.

Default: harbor_poll_mirroring_policies.csv

HARBOR_PUSH_MIRRORING_POLICIES_CSV#

CSV containing MSR 4 push replication policies migrated from the previous MSR version.

Default: harbor_push_mirroring_policies.csv

REUSE_ALREADY_FETCHED_DATA#

Reuse previously fetched MSR 2.9, MSR 2.10 or MSR 3.1 and Enzi data, or download it again.

Default: false

DRY_RUN#

Simulates project creation by generating SQL statements without applying them.

Default: false

CSV_DATA_DIR#

Directory where CSV data is saved.

Default: localhost

SQL_DATA_DIR#

Directory where SQL files are generated.

Default: ./data/sql

EXTERNAL_SCRIPT_DIR#

Directory for external scripts, including a background PostgreSQL keep-alive.

Default: external

ENZI_TEAM_NAME_PREFIX_OR_SUFFIX#

Specifies if organization name is added as a prefix (default) or suffix to teams.

Default: prefix

IS_ENZI_TEAM_NAME_UNIQUE#

Whether Enzi team names are unique. Set to true to avoid prefixing with organisation name.

Default: false

HARBOR_DEFAULT_GROUP_ROLE#

Sets default group role for projects' members in 1-to-1 migration mode. Valid values are: read-only, read-write, admin.

Default: None

HARBOR_DEFAULT_VISIBILITY#

DEPRECATED Default visibility setting if MSR 2.9, MSR 2.10 or MSR 3.1 data is unavailable.

Default: false

HARBOR_DEFAULT_TAG_IMMUTABILITY#

DEPRECATED Default tag immutability setting if MSR 2.9, MSR 2.10 or MSR 3.1 data is unavailable.

Default: false

HARBOR_DEFAULT_SCAN_ON_PUSH#

DEPRECATED Default scanOnPush setting if MSR 2.9, MSR 2.10 or MSR 3.1 data is unavailable.

Default: false

IS_MAPPING_ORGANIZATION_1_TO_1#

Maps MSR 2.9, MSR 2.10 and 3.1 organizations/repositories to MSR 4 projects/repositories 1-to-1.

Default: false

MIGRATION_REPLICATION_RULE_PER_REPO#

Creates migration replications rules per repository instead of per project in 1-to-1 migration mode.

Default: false

MIGRATION_SOURCE_REGISTRY_URL#

URL of the MSR 2.9, MSR 2.10 or MSR 3.1 source registry used for image migration.

Default: None

MIGRATION_SOURCE_REGISTRY_NAME#

Name saved on MSR 4 for the source registry used in migration.

Default: None

MIGRATION_SOURCE_REGISTRY_ADMIN_USERNAME#

Username to access the source MSR.

Default: None

MIGRATION_SOURCE_REGISTRY_ADMIN_PASSWORD#

Password or token for accessing the source MSR.

Default: None

MIGRATION_SOURCE_REGISTRY_WITH_TLS_VERIFICATION#

Defines whether to verify SSL certificates when connecting to the source registry.

Default: None

MIGRATION_SOURCE_REGISTRY_REPLICATION_RULE_PREFIX#

Prefix used for naming replication rules for easier management.

Default: migration-rule-

MIGRATION_SOURCE_REGISTRY_TYPE#

Registry type. Defaults to DTR unless the connection is broken.

Default: DTR

REPLICATION_RULE_FLATTENING#

Flattening level for all migrated images.

Default: -1

REPLICATION_TRIGGER_CRON#

Cron job schedule for triggering replication rules. Format: second minute hour day_of_month month day_of_week.

Default: 0 0 1 * * *