
Add USM prestaging support. This commit introduces support for the --for-sw-deploy and --for-install prestaging options. The --for-install option is the default, and is the equivalent of the previous release prestaging behaviour - the subcloud ostree repo is prestaged to the platform-backup partition. The --for-sw-deploy option is the new prestaging behaviour for USM major and minor releases. This commit focuses on prestaging minor release updates. The --for-sw-deploy option requires synchronization of ostree commits and /opt/software/metadata contents from the system controller to the subcloud. Notes on --release YY.MM and --release YY.MM.nn handling: - The --release value can either be a major release, in format YY.MM, or a specific minor release, in format YY.MM.nn. - If format is YY.MM, the behaviour is to prestage ALL minor releases present on the system controller to the subcloud. - If format is YY.MM.nn, the behaviour is to prestage ONLY the given minor release - Note: there is no sanity checking for dependent minor updates. If update YY.MM.nn is given but YY.MM.nn-1 is not present, the operation is currently allowed. This will be addressed in a future commit (see TODO below) - TODO: Future commit will expand on this behaviour for YY.MM.nn to prestage all missing commits up to and including the YY.MM.nn commit This update also fixes the /opt/platform/iso/YY.MM/ostree_repo bind mount if it has not already been established via a subcloud install. Test Cases PASS - For prestaging operation, initiate ansible playbook with correct values of for_install / for_sw_deploy variables, and correct software_version / software_major_release values corresponding to the values input by the client. - Verify that a stale or missing /opt/platform/iso/YY.MM/ostree_repo bind mount is re-established upon start of prestage operation. Story: 2010676 Task: 50322 Signed-off-by: Kyle MacLeod <kyle.macleod@windriver.com> Change-Id: I5cc08499e44bcb66eecdb28dc227cc032ee9890a
509 lines
19 KiB
Python
509 lines
19 KiB
Python
# Copyright (c) 2016 Ericsson AB.
|
|
# Copyright (c) 2017-2024 Wind River Systems, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
RPC_API_VERSION = "1.0"
|
|
RPC_SUBCLOUD_BACKUP_TIMEOUT = 120
|
|
|
|
TOPIC_DC_MANAGER = "dcmanager"
|
|
TOPIC_DC_MANAGER_STATE = "dcmanager-state"
|
|
TOPIC_DC_MANAGER_AUDIT = "dcmanager-audit"
|
|
TOPIC_DC_MANAGER_AUDIT_WORKER = "dcmanager-audit-worker"
|
|
TOPIC_DC_MANAGER_ORCHESTRATOR = "dcmanager-orchestrator"
|
|
|
|
CERTS_VAULT_DIR = "/opt/dc-vault/certs"
|
|
LOADS_VAULT_DIR = "/opt/dc-vault/loads"
|
|
PATCH_VAULT_DIR = "/opt/dc-vault/patches"
|
|
|
|
BOOTSTRAP_VALUES = 'bootstrap_values'
|
|
BOOTSTRAP_ADDRESS = 'bootstrap-address'
|
|
INSTALL_VALUES = 'install_values'
|
|
|
|
# Deploy phases
|
|
DEPLOY_PHASE_CREATE = 'create'
|
|
DEPLOY_PHASE_INSTALL = 'install'
|
|
DEPLOY_PHASE_BOOTSTRAP = 'bootstrap'
|
|
DEPLOY_PHASE_CONFIG = 'configure'
|
|
DEPLOY_PHASE_COMPLETE = 'complete'
|
|
DEPLOY_PHASE_ABORT = 'abort'
|
|
DEPLOY_PHASE_RESUME = 'resume'
|
|
DEPLOY_PHASE_ENROLL = 'enroll'
|
|
|
|
# Admin status for hosts
|
|
ADMIN_LOCKED = 'locked'
|
|
ADMIN_UNLOCKED = 'unlocked'
|
|
|
|
# operational status for hosts
|
|
OPERATIONAL_ENABLED = 'enabled'
|
|
OPERATIONAL_DISABLED = 'disabled'
|
|
|
|
# Availability status for hosts
|
|
AVAILABILITY_AVAILABLE = 'available'
|
|
AVAILABILITY_DEGRADED = 'degraded'
|
|
|
|
# Personality of hosts
|
|
PERSONALITY_CONTROLLER_ACTIVE = 'Controller-Active'
|
|
PERSONALITY_CONTROLLER_STANDBY = 'Controller-Standby'
|
|
|
|
# Subcloud endpoint related database fields
|
|
ENDPOINT_SYNC_STATUS = "endpoint_sync_status"
|
|
SYNC_STATUS = "sync_status"
|
|
ENDPOINT_TYPE = "endpoint_type"
|
|
|
|
# Service group status
|
|
SERVICE_GROUP_STATUS_ACTIVE = "active"
|
|
|
|
# Availability fail count
|
|
# we don't want to alarm first failure since there are
|
|
# cases where we expect a transient failure in the
|
|
# subcloud (e.g. haproxy process restart to update
|
|
# certificates)
|
|
AVAIL_FAIL_COUNT_TO_ALARM = 2
|
|
AVAIL_FAIL_COUNT_MAX = 9999
|
|
|
|
# Software update strategy types
|
|
SW_UPDATE_TYPE_FIRMWARE = "firmware"
|
|
SW_UPDATE_TYPE_KUBE_ROOTCA_UPDATE = "kube-rootca-update"
|
|
SW_UPDATE_TYPE_KUBERNETES = "kubernetes"
|
|
SW_UPDATE_TYPE_PATCH = "patch"
|
|
SW_UPDATE_TYPE_PRESTAGE = "prestage"
|
|
SW_UPDATE_TYPE_UPGRADE = "upgrade"
|
|
SW_UPDATE_TYPE_SOFTWARE = "sw-deploy"
|
|
|
|
# Software update states
|
|
SW_UPDATE_STATE_INITIAL = "initial"
|
|
SW_UPDATE_STATE_APPLYING = "applying"
|
|
SW_UPDATE_STATE_ABORT_REQUESTED = "abort requested"
|
|
SW_UPDATE_STATE_ABORTING = "aborting"
|
|
SW_UPDATE_STATE_COMPLETE = "complete"
|
|
SW_UPDATE_STATE_ABORTED = "aborted"
|
|
SW_UPDATE_STATE_FAILED = "failed"
|
|
SW_UPDATE_STATE_DELETING = "deleting"
|
|
SW_UPDATE_STATE_DELETED = "deleted"
|
|
|
|
# Software misc info
|
|
ISO_VERSION = "0"
|
|
|
|
# Software update actions
|
|
SW_UPDATE_ACTION_APPLY = "apply"
|
|
SW_UPDATE_ACTION_ABORT = "abort"
|
|
|
|
# Stage states
|
|
STAGE_SUBCLOUD_ORCHESTRATION_CREATED = 1
|
|
STAGE_SUBCLOUD_ORCHESTRATION_STARTED = 2
|
|
STAGE_SUBCLOUD_ORCHESTRATION_PROCESSED = 3
|
|
|
|
# Subcloud apply types
|
|
SUBCLOUD_APPLY_TYPE_PARALLEL = "parallel"
|
|
SUBCLOUD_APPLY_TYPE_SERIAL = "serial"
|
|
|
|
# Values for the Default Subcloud Group
|
|
DEFAULT_SUBCLOUD_GROUP_ID = 1
|
|
DEFAULT_SUBCLOUD_GROUP_NAME = 'Default'
|
|
DEFAULT_SUBCLOUD_GROUP_DESCRIPTION = 'Default Subcloud Group'
|
|
DEFAULT_SUBCLOUD_GROUP_UPDATE_APPLY_TYPE = SUBCLOUD_APPLY_TYPE_PARALLEL
|
|
DEFAULT_SUBCLOUD_GROUP_MAX_PARALLEL_SUBCLOUDS = 2
|
|
|
|
# Common strategy step states
|
|
STRATEGY_STATE_INITIAL = "initial"
|
|
STRATEGY_STATE_COMPLETE = "complete"
|
|
STRATEGY_STATE_ABORTED = "aborted"
|
|
STRATEGY_STATE_FAILED = "failed"
|
|
|
|
# Patch orchestrations states
|
|
STRATEGY_STATE_CREATING_VIM_PATCH_STRATEGY = "creating VIM patch strategy"
|
|
STRATEGY_STATE_DELETING_VIM_PATCH_STRATEGY = "deleting VIM patch strategy"
|
|
STRATEGY_STATE_APPLYING_VIM_PATCH_STRATEGY = "applying VIM patch strategy"
|
|
|
|
# Upgrade orchestration states
|
|
STRATEGY_STATE_PRE_CHECK = "pre check"
|
|
STRATEGY_STATE_INSTALLING_LICENSE = "installing license"
|
|
STRATEGY_STATE_IMPORTING_LOAD = "importing load"
|
|
STRATEGY_STATE_UPDATING_PATCHES = "updating patches"
|
|
STRATEGY_STATE_FINISHING_PATCH_STRATEGY = "finishing patch strategy"
|
|
STRATEGY_STATE_STARTING_UPGRADE = "starting upgrade"
|
|
STRATEGY_STATE_TRANSFERRING_CA_CERTIFICATE = "transferring CA certificate"
|
|
STRATEGY_STATE_LOCKING_CONTROLLER_0 = "locking controller-0"
|
|
STRATEGY_STATE_LOCKING_CONTROLLER_1 = "locking controller-1"
|
|
STRATEGY_STATE_UPGRADING_SIMPLEX = "upgrading simplex"
|
|
STRATEGY_STATE_UPGRADING_DUPLEX = "upgrading duplex"
|
|
STRATEGY_STATE_MIGRATING_DATA = "migrating data"
|
|
STRATEGY_STATE_UNLOCKING_CONTROLLER_0 = "unlocking controller-0"
|
|
STRATEGY_STATE_UNLOCKING_CONTROLLER_1 = "unlocking controller-1"
|
|
STRATEGY_STATE_SWACTING_TO_CONTROLLER_0 = "swacting to controller-0"
|
|
STRATEGY_STATE_SWACTING_TO_CONTROLLER_1 = "swacting to controller-1"
|
|
STRATEGY_STATE_ACTIVATING_UPGRADE = "activating upgrade"
|
|
STRATEGY_STATE_COMPLETING_UPGRADE = "completing upgrade"
|
|
STRATEGY_STATE_CREATING_VIM_UPGRADE_STRATEGY = "creating VIM upgrade strategy"
|
|
STRATEGY_STATE_APPLYING_VIM_UPGRADE_STRATEGY = "applying VIM upgrade strategy"
|
|
STRATEGY_STATE_DELETING_LOAD = "deleting load"
|
|
|
|
# Software orchestration states
|
|
STRATEGY_STATE_SW_PRE_CHECK = "software pre check"
|
|
STRATEGY_STATE_SW_INSTALL_LICENSE = "software install license"
|
|
STRATEGY_STATE_SW_CREATE_VIM_STRATEGY = "create VIM software strategy"
|
|
STRATEGY_STATE_SW_APPLY_VIM_STRATEGY = "apply VIM software strategy"
|
|
STRATEGY_STATE_SW_FINISH_STRATEGY = "finish software strategy"
|
|
|
|
# Firmware update orchestration states
|
|
STRATEGY_STATE_IMPORTING_FIRMWARE = "importing firmware"
|
|
STRATEGY_STATE_CREATING_FW_UPDATE_STRATEGY = "creating fw update strategy"
|
|
STRATEGY_STATE_APPLYING_FW_UPDATE_STRATEGY = "applying fw update strategy"
|
|
STRATEGY_STATE_FINISHING_FW_UPDATE = "finishing fw update"
|
|
|
|
# Kubernetes update orchestration states (ordered)
|
|
STRATEGY_STATE_KUBE_UPGRADE_PRE_CHECK = \
|
|
"kube upgrade pre check"
|
|
STRATEGY_STATE_KUBE_CREATING_VIM_KUBE_UPGRADE_STRATEGY = \
|
|
"kube creating vim kube upgrade strategy"
|
|
STRATEGY_STATE_KUBE_APPLYING_VIM_KUBE_UPGRADE_STRATEGY = \
|
|
"kube applying vim kube upgrade strategy"
|
|
|
|
# Kube Root CA Update orchestration states (ordered)
|
|
STRATEGY_STATE_KUBE_ROOTCA_UPDATE_PRE_CHECK = \
|
|
"kube rootca update pre check"
|
|
STRATEGY_STATE_KUBE_ROOTCA_UPDATE_START = \
|
|
"kube rootca update start"
|
|
STRATEGY_STATE_KUBE_ROOTCA_UPDATE_UPLOAD_CERT = \
|
|
"kube rootca update upload cert"
|
|
STRATEGY_STATE_CREATING_VIM_KUBE_ROOTCA_UPDATE_STRATEGY = \
|
|
"creating vim kube rootca update strategy"
|
|
STRATEGY_STATE_APPLYING_VIM_KUBE_ROOTCA_UPDATE_STRATEGY = \
|
|
"applying vim kube rootca update strategy"
|
|
|
|
# Prestage orchestration states (ordered)
|
|
STRATEGY_STATE_PRESTAGE_PRE_CHECK = "prestage-precheck"
|
|
STRATEGY_STATE_PRESTAGE_PACKAGES = "prestaging-packages"
|
|
STRATEGY_STATE_PRESTAGE_IMAGES = "prestaging-images"
|
|
|
|
# Subcloud deploy status states
|
|
DEPLOY_STATE_NONE = 'not-deployed'
|
|
DEPLOY_STATE_PRE_DEPLOY = 'pre-deploy'
|
|
DEPLOY_STATE_DEPLOY_PREP_FAILED = 'deploy-prep-failed'
|
|
DEPLOY_STATE_CREATING = 'creating'
|
|
DEPLOY_STATE_CREATE_FAILED = 'create-failed'
|
|
DEPLOY_STATE_CREATED = 'create-complete'
|
|
DEPLOY_STATE_PRE_INSTALL = 'pre-install'
|
|
DEPLOY_STATE_PRE_INSTALL_FAILED = 'pre-install-failed'
|
|
DEPLOY_STATE_INSTALLING = 'installing'
|
|
DEPLOY_STATE_INSTALL_FAILED = 'install-failed'
|
|
DEPLOY_STATE_INSTALLED = 'install-complete'
|
|
DEPLOY_STATE_PRE_BOOTSTRAP = 'pre-bootstrap'
|
|
DEPLOY_STATE_PRE_BOOTSTRAP_FAILED = 'pre-bootstrap-failed'
|
|
DEPLOY_STATE_BOOTSTRAPPING = 'bootstrapping'
|
|
DEPLOY_STATE_BOOTSTRAP_FAILED = 'bootstrap-failed'
|
|
DEPLOY_STATE_BOOTSTRAP_ABORTED = 'bootstrap-aborted'
|
|
DEPLOY_STATE_BOOTSTRAPPED = 'bootstrap-complete'
|
|
DEPLOY_STATE_PRE_CONFIG = 'pre-config'
|
|
DEPLOY_STATE_PRE_CONFIG_FAILED = 'pre-config-failed'
|
|
DEPLOY_STATE_CONFIGURING = 'configuring'
|
|
DEPLOY_STATE_CONFIG_FAILED = 'config-failed'
|
|
DEPLOY_STATE_DEPLOYING = 'deploying'
|
|
DEPLOY_STATE_DEPLOY_FAILED = 'deploy-failed'
|
|
DEPLOY_STATE_ABORTING_INSTALL = 'aborting-install'
|
|
DEPLOY_STATE_INSTALL_ABORTED = 'install-aborted'
|
|
DEPLOY_STATE_ABORTING_BOOTSTRAP = 'aborting-bootstrap'
|
|
DEPLOY_STATE_ABORTING_CONFIG = 'aborting-config'
|
|
DEPLOY_STATE_CONFIG_ABORTED = 'config-aborted'
|
|
DEPLOY_STATE_ENROLLED = 'enroll-complete'
|
|
DEPLOY_STATE_ENROLLING = 'enrolling'
|
|
DEPLOY_STATE_ENROLL_FAILED = 'enroll-failed'
|
|
DEPLOY_STATE_MIGRATING_DATA = 'migrating-data'
|
|
DEPLOY_STATE_DATA_MIGRATION_FAILED = 'data-migration-failed'
|
|
DEPLOY_STATE_MIGRATED = 'migrated'
|
|
DEPLOY_STATE_UPGRADE_ACTIVATED = 'upgrade-activated'
|
|
DEPLOY_STATE_PRE_RESTORE = 'pre-restore'
|
|
DEPLOY_STATE_RESTORE_PREP_FAILED = 'restore-prep-failed'
|
|
DEPLOY_STATE_RESTORING = 'restoring'
|
|
DEPLOY_STATE_RESTORE_FAILED = 'restore-failed'
|
|
DEPLOY_STATE_PRE_REHOME = 'pre-rehome'
|
|
DEPLOY_STATE_PRE_ENROLL = 'pre-enroll'
|
|
DEPLOY_STATE_PRE_ENROLL_FAILED = 'pre-enroll-failed'
|
|
DEPLOY_STATE_PRE_ENROLL_COMPLETE = 'pre-enroll-complete'
|
|
DEPLOY_STATE_PRE_INIT_ENROLL = 'pre-init-enroll'
|
|
DEPLOY_STATE_PRE_INIT_ENROLL_FAILED = 'pre-init-enroll-failed'
|
|
DEPLOY_STATE_INITIATING_ENROLL = 'initiating-enroll'
|
|
DEPLOY_STATE_INIT_ENROLL_FAILED = 'init-enroll-failed'
|
|
DEPLOY_STATE_INIT_ENROLL_COMPLETE = 'init-enroll-complete'
|
|
# If any of the following rehoming or secondary statuses
|
|
# are modified, cert-mon code will need to be updated.
|
|
DEPLOY_STATE_REHOMING = 'rehoming'
|
|
DEPLOY_STATE_REHOME_FAILED = 'rehome-failed'
|
|
DEPLOY_STATE_REHOME_PREP_FAILED = 'rehome-prep-failed'
|
|
DEPLOY_STATE_REHOME_PENDING = 'rehome-pending'
|
|
DEPLOY_STATE_SECONDARY = 'secondary'
|
|
DEPLOY_STATE_SECONDARY_FAILED = 'secondary-failed'
|
|
DEPLOY_STATE_DONE = 'complete'
|
|
DEPLOY_STATE_RECONFIGURING_NETWORK = 'reconfiguring-network'
|
|
DEPLOY_STATE_RECONFIGURING_NETWORK_FAILED = 'network-reconfiguration-failed'
|
|
# Subcloud errors
|
|
ERROR_DESC_EMPTY = 'No errors present'
|
|
ERROR_DESC_FAILED = 'Failed to get error message. Please check sysinv log'
|
|
ERROR_DESC_CMD = 'dcmanager subcloud errors <subcloud-name>'
|
|
|
|
# Static content for error messages
|
|
BOOTSTRAP_ERROR_MSG = DEPLOY_STATE_BOOTSTRAP_FAILED
|
|
CONFIG_ERROR_MSG = DEPLOY_STATE_CONFIG_FAILED
|
|
|
|
ERR_MSG_DICT = {
|
|
|
|
BOOTSTRAP_ERROR_MSG: "For bootstrap failures, please use 'dcmanager subcloud "
|
|
"deploy resume' after the cause of failure has been "
|
|
"resolved.",
|
|
|
|
CONFIG_ERROR_MSG: "For configuration failures, please use dcmanager subcloud "
|
|
"deploy config command to reconfigure the subcloud after "
|
|
"the cause of failure has been resolved.",
|
|
|
|
"bmc_cred": "Check BMC credentials in install-values.yml. Check basic "
|
|
"authenticacion to the BMC: curl -u <<user:pass>> "
|
|
"<<BMC_URL>>",
|
|
|
|
"ping_bmc": "Check reachability to the BMC: ping <<BMC_URL>>",
|
|
|
|
"rvmc_process": "Ensure the previous RVMC process is terminated.",
|
|
|
|
"rvmc_timeout": "Please check the dcmanager ansible log for details.",
|
|
|
|
"dm_pod_failed": """- Ensure you are using the correct tarball that \
|
|
corresponds to the image.
|
|
- Check helm overrides files, ensure the deployment manager images exist in \
|
|
the specified registry and you can manually pull them from the registry.
|
|
- Ensure you have installed the correct certificate.
|
|
- Ensure you have logged in: sudo docker login registry.local:9001 \
|
|
-u <<registry_user>> -p <<registry_password>>""",
|
|
|
|
"dm_apply_failed": "Check deployment yaml file and ensure the content is "
|
|
"syntactically and semantically correct.",
|
|
|
|
"images_download_failure": "Check docker_registries and docker proxy "
|
|
"configurations in bootstrap values yaml "
|
|
"file. Ensure you can manually log into the "
|
|
"registry e.g. sudo docker login "
|
|
"registry.local:9001 -u <registry-user> "
|
|
"-p <registry-password>",
|
|
|
|
"failed_ssl_cert": "Check if the right certificate was installed."
|
|
}
|
|
|
|
# error_description max length
|
|
ERROR_DESCRIPTION_LENGTH = 2048
|
|
|
|
# Subcloud backup status states
|
|
BACKUP_STATE_INITIAL = 'initial'
|
|
BACKUP_STATE_VALIDATING = 'validating'
|
|
BACKUP_STATE_VALIDATE_FAILED = 'validate-failed'
|
|
BACKUP_STATE_PRE_BACKUP = 'pre-backup'
|
|
BACKUP_STATE_PREP_FAILED = 'backup-prep-failed'
|
|
BACKUP_STATE_IN_PROGRESS = 'backing-up'
|
|
BACKUP_STATE_FAILED = 'failed'
|
|
BACKUP_STATE_UNKNOWN = 'unknown'
|
|
BACKUP_STATE_COMPLETE_LOCAL = 'complete-local'
|
|
BACKUP_STATE_COMPLETE_CENTRAL = 'complete-central'
|
|
|
|
# Upgrades States
|
|
UPGRADE_STATE_DATA_MIGRATION = 'data-migration'
|
|
UPGRADE_STATE_DATA_MIGRATION_COMPLETE = 'data-migration-complete'
|
|
UPGRADE_STATE_DATA_MIGRATION_FAILED = 'data-migration-failed'
|
|
UPGRADE_STATE_UPGRADING_CONTROLLERS = 'upgrading-controllers'
|
|
UPGRADE_STATE_UPGRADING_HOSTS = 'upgrading-hosts'
|
|
UPGRADE_STATE_ACTIVATION_FAILED = 'activation-failed'
|
|
UPGRADE_STATE_ACTIVATION_COMPLETE = 'activation-complete'
|
|
|
|
# Prestage States
|
|
PRESTAGE_STATE_PACKAGES = STRATEGY_STATE_PRESTAGE_PACKAGES
|
|
PRESTAGE_STATE_IMAGES = STRATEGY_STATE_PRESTAGE_IMAGES
|
|
PRESTAGE_STATE_FAILED = 'failed'
|
|
PRESTAGE_STATE_COMPLETE = 'complete'
|
|
|
|
# States to indicate if a prestage operation is currently in progress
|
|
STATES_FOR_ONGOING_PRESTAGE = [PRESTAGE_STATE_PACKAGES,
|
|
PRESTAGE_STATE_IMAGES]
|
|
|
|
# Alarm aggregation
|
|
ALARMS_DISABLED = "disabled"
|
|
ALARM_OK_STATUS = "OK"
|
|
ALARM_DEGRADED_STATUS = "degraded"
|
|
ALARM_CRITICAL_STATUS = "critical"
|
|
|
|
DEPLOY_PLAYBOOK = "deploy_playbook"
|
|
DEPLOY_OVERRIDES = "deploy_overrides"
|
|
DEPLOY_CHART = "deploy_chart"
|
|
DEPLOY_CONFIG = 'deploy_config'
|
|
DEPLOY_PRESTAGE = "prestage_images"
|
|
|
|
DEPLOY_COMMON_FILE_OPTIONS = [
|
|
DEPLOY_PLAYBOOK,
|
|
DEPLOY_OVERRIDES,
|
|
DEPLOY_CHART,
|
|
DEPLOY_PRESTAGE
|
|
]
|
|
|
|
|
|
DC_LOG_DIR = '/var/log/dcmanager/'
|
|
DC_ANSIBLE_LOG_DIR = DC_LOG_DIR + 'ansible'
|
|
INVENTORY_FILE_POSTFIX = '_inventory.yml'
|
|
|
|
# The following password is just a temporary and internal password that is used
|
|
# after a remote install as part of the upgrade. The real sysadmin password
|
|
# will be restored af the subcloud is re-managed at the end of the upgrade.
|
|
TEMP_SYSADMIN_PASSWORD = 'St8rlingXCloud*'
|
|
|
|
# System mode
|
|
SYSTEM_MODE_DUPLEX = "duplex"
|
|
SYSTEM_MODE_SIMPLEX = "simplex"
|
|
SYSTEM_MODE_DUPLEX_DIRECT = "duplex-direct"
|
|
|
|
# Load states
|
|
ACTIVE_LOAD_STATE = 'active'
|
|
INACTIVE_LOAD_STATE = 'inactive'
|
|
IMPORTING_LOAD_STATE = 'importing'
|
|
IMPORTED_LOAD_STATE = 'imported'
|
|
IMPORTED_METADATA_LOAD_STATE = 'imported-metadata'
|
|
ERROR_LOAD_STATE = 'error'
|
|
DELETING_LOAD_STATE = 'deleting'
|
|
IMPORTED_LOAD_STATES = [
|
|
IMPORTED_LOAD_STATE,
|
|
IMPORTED_METADATA_LOAD_STATE
|
|
]
|
|
|
|
# extra_args for kube upgrade
|
|
EXTRA_ARGS_TO_VERSION = 'to-version'
|
|
# extra_args for kube rootca update
|
|
EXTRA_ARGS_CERT_FILE = 'cert-file'
|
|
EXTRA_ARGS_EXPIRY_DATE = 'expiry-date'
|
|
EXTRA_ARGS_SUBJECT = 'subject'
|
|
EXTRA_ARGS_SYSADMIN_PASSWORD = 'sysadmin_password'
|
|
EXTRA_ARGS_FORCE = 'force'
|
|
|
|
# extra_args for patching
|
|
EXTRA_ARGS_UPLOAD_ONLY = 'upload-only'
|
|
EXTRA_ARGS_PATCH = 'patch'
|
|
|
|
# extra_args for software
|
|
EXTRA_ARGS_RELEASE = 'release'
|
|
|
|
# http request/response arguments for prestage
|
|
PRESTAGE_SOFTWARE_VERSION = 'prestage-software-version'
|
|
PRESTAGE_REQUEST_RELEASE = 'release'
|
|
PRESTAGE_FOR_INSTALL = 'for_install'
|
|
PRESTAGE_FOR_SW_DEPLOY = 'for_sw_deploy'
|
|
|
|
# Device Image Bitstream Types
|
|
BITSTREAM_TYPE_ROOT_KEY = 'root-key'
|
|
BITSTREAM_TYPE_FUNCTIONAL = 'functional'
|
|
BITSTREAM_TYPE_KEY_REVOCATION = 'key-revocation'
|
|
|
|
# Platform Backup size default in MB
|
|
DEFAULT_PERSISTENT_SIZE = 30000
|
|
|
|
# Retry values to be used when platform requests fail due to temporary
|
|
# unavailability, which may occur during some orchestration steps. The sleep
|
|
# duration and number of retries are shorter, since these should only occur if a
|
|
# service is being restarted
|
|
PLATFORM_RETRY_MAX_ATTEMPTS = 5
|
|
PLATFORM_RETRY_SLEEP_MILLIS = 5000
|
|
|
|
# States to reject when processing a subcloud-backup restore request
|
|
INVALID_DEPLOY_STATES_FOR_RESTORE = [DEPLOY_STATE_CREATING,
|
|
DEPLOY_STATE_PRE_INSTALL,
|
|
DEPLOY_STATE_INSTALLING,
|
|
DEPLOY_STATE_PRE_BOOTSTRAP,
|
|
DEPLOY_STATE_BOOTSTRAPPING,
|
|
DEPLOY_STATE_PRE_CONFIG,
|
|
DEPLOY_STATE_CONFIGURING,
|
|
DEPLOY_STATE_PRE_REHOME,
|
|
DEPLOY_STATE_REHOMING,
|
|
DEPLOY_STATE_PRE_RESTORE,
|
|
DEPLOY_STATE_RESTORING]
|
|
|
|
# States to reject when processing a subcloud delete request
|
|
INVALID_DEPLOY_STATES_FOR_DELETE = [
|
|
DEPLOY_STATE_PRE_DEPLOY, DEPLOY_STATE_CREATING, DEPLOY_STATE_PRE_INSTALL,
|
|
DEPLOY_STATE_INSTALLING, DEPLOY_STATE_PRE_BOOTSTRAP, DEPLOY_STATE_BOOTSTRAPPING,
|
|
DEPLOY_STATE_PRE_CONFIG, DEPLOY_STATE_CONFIGURING, DEPLOY_STATE_DEPLOYING,
|
|
DEPLOY_STATE_ABORTING_INSTALL, DEPLOY_STATE_ABORTING_BOOTSTRAP,
|
|
DEPLOY_STATE_ABORTING_CONFIG, DEPLOY_STATE_MIGRATING_DATA,
|
|
DEPLOY_STATE_UPGRADE_ACTIVATED, DEPLOY_STATE_PRE_RESTORE, DEPLOY_STATE_RESTORING,
|
|
DEPLOY_STATE_PRE_REHOME, DEPLOY_STATE_REHOMING, DEPLOY_STATE_REHOME_PENDING,
|
|
DEPLOY_STATE_RECONFIGURING_NETWORK
|
|
]
|
|
|
|
# States to indicate if a backup operation is currently in progress
|
|
STATES_FOR_ONGOING_BACKUP = [BACKUP_STATE_INITIAL,
|
|
BACKUP_STATE_VALIDATING,
|
|
BACKUP_STATE_PRE_BACKUP,
|
|
BACKUP_STATE_IN_PROGRESS]
|
|
|
|
# The k8s secret that holds openldap CA certificate
|
|
OPENLDAP_CA_CERT_SECRET_NAME = "system-local-ca"
|
|
|
|
CERT_NAMESPACE_PLATFORM_CA_CERTS = 'cert-manager'
|
|
|
|
# The ansible playbook base directories
|
|
ANSIBLE_CURRENT_VERSION_BASE_PATH = '/usr/share/ansible/stx-ansible/playbooks'
|
|
ANSIBLE_PREVIOUS_VERSION_BASE_PATH = '/opt/dc-vault/playbooks'
|
|
|
|
# The deployment manager artifacts usr directories
|
|
ALTERNATE_DEPLOY_FILES_DIR = '/usr/local/share/applications'
|
|
|
|
ALTERNATE_HELM_CHART_OVERRIDES_DIR = ALTERNATE_DEPLOY_FILES_DIR + '/overrides'
|
|
HELM_CHART_OVERRIDES_POSTFIX = '-overrides-subcloud.yaml'
|
|
|
|
ALTERNATE_HELM_CHART_DIR = ALTERNATE_DEPLOY_FILES_DIR + '/helm'
|
|
HELM_CHART_POSTFIX = 'deployment-manager'
|
|
|
|
ALTERNATE_DEPLOY_PLAYBOOK_DIR = ALTERNATE_DEPLOY_FILES_DIR + '/playbooks'
|
|
DEPLOY_PLAYBOOK_POSTFIX = 'deployment-manager.yaml'
|
|
|
|
SUPPORTED_UPGRADES_METADATA_FILE_PATH = '/usr/rootdirs/opt/upgrades/metadata.xml'
|
|
|
|
# Required for subcloud name configuration
|
|
CERT_MON_HTTP_AGENT = 'cert-mon/1.0'
|
|
OS_REGION_NAME = "OS_REGION_NAME"
|
|
|
|
# Required for GEO-redundancy
|
|
# User-Agent check for subcloud by region_name request.
|
|
DCMANAGER_V1_HTTP_AGENT = 'dcmanager/1.0'
|
|
|
|
# batch rehome manage state wait timeout
|
|
BATCH_REHOME_MGMT_STATES_TIMEOUT = 900
|
|
|
|
# System peer availability state
|
|
SYSTEM_PEER_AVAILABILITY_STATE_AVAILABLE = 'available'
|
|
SYSTEM_PEER_AVAILABILITY_STATE_UNAVAILABLE = 'unavailable'
|
|
|
|
# Peer group migration status
|
|
PEER_GROUP_MIGRATING = 'migrating'
|
|
PEER_GROUP_MIGRATION_COMPLETE = 'complete'
|
|
PEER_GROUP_MIGRATION_NONE = 'none'
|
|
|
|
PEER_GROUP_PRIMARY_PRIORITY = 0
|
|
|
|
# Peer group association type
|
|
ASSOCIATION_TYPE_PRIMARY = 'primary'
|
|
ASSOCIATION_TYPE_NON_PRIMARY = 'non-primary'
|
|
|
|
# Peer group association sync status
|
|
ASSOCIATION_SYNC_STATUS_SYNCING = 'syncing'
|
|
ASSOCIATION_SYNC_STATUS_IN_SYNC = 'in-sync'
|
|
ASSOCIATION_SYNC_STATUS_FAILED = 'failed'
|
|
ASSOCIATION_SYNC_STATUS_OUT_OF_SYNC = 'out-of-sync'
|
|
ASSOCIATION_SYNC_STATUS_UNKNOWN = 'unknown'
|
|
|
|
# Peer monitor heartbeat policy
|
|
HEARTBEAT_FAILURE_POLICY_ALARM = 'alarm'
|