Проблема

В настройках registry каким-то чудом прописали два одинаковых порта на http и https - они должны быть разные.После рестарта nexus не запускается из-за этого:

attributes.docker.httpsPort: HTTP and HTTPs ports must be different

Как я это лечил в кубере

Важно: запускать докер от пользователя кому принадлежит БД, если этого не сделать - некоторые таблицы потом становятся не читаемыми - приходится потом делать chown на нужного пользователя.

Зайти на ноду, куда зацепился pv/pvc

docker run --rm -ti -v /var/lib/kubelet/plugins/kubernetes.io/csi/pv/pv-nexus-dev/globalmount:/tmp1 sonatype/nexus3:3.39.0 /bin/bash
java -jar /opt/sonatype/nexus/lib/support/nexus-orient-console.jar

Просмотр репозиториев:

connect plocal:/tmp1/db/config admin admin
orientdb {db=config}> select * from repository limit 100
+----+------+---------+------+---------+---------+---------+---------------------------------------------------------------------------------------------+
|#   |@RID  |@CLASS   |online|recipe_na|routingRu|repositor|attributes                                                                                   |
+----+------+---------+------+---------+---------+---------+---------------------------------------------------------------------------------------------+
|0   |#37:0 |reposi...|true  |nuget-...|         |nuget-...|{storage={writePolicy=ALLOW, blobStoreName=default}}                                         |
|1   |#37:1 |reposi...|true  |nuget-...|         |nuget-...|{group={memberNames=[nuget-hosted, nuget.org-proxy]}, storage={blobStoreName=default}}       |
|2   |#37:2 |reposi...|true  |maven2...|         |maven-...|{maven={versionPolicy=SNAPSHOT, layoutPolicy=STRICT}, storage={writePolicy=ALLOW, strictCo...|
|3   |#37:3 |reposi...|true  |maven2...|         |maven-...|{maven={versionPolicy=MIXED}, group={memberNames=[maven-releases, maven-snapshots, maven-c...|
|4   |#37:4 |reposi...|true  |maven2...|         |maven-...|{proxy={contentMaxAge=-1.0, remoteUrl=https://repo1.maven.org/maven2/, metadataMaxAge=1440...|
|5   |#37:5 |reposi...|true  |maven2...|         |web-ma...|{maven={versionPolicy=RELEASE, layoutPolicy=STRICT}, storage={strictContentTypeValidation=...|
|6   |#37:6 |reposi...|true  |maven2...|         |web-ma...|{cleanup={policyName=[None]}, maven={versionPolicy=RELEASE, layoutPolicy=STRICT}, storage=...|
|7   |#37:7 |reposi...|true  |pypi-h...|         |kkryuc...|{cleanup={policyName=[None]}, component={proprietaryComponents=false}, storage={strictCont...|
|8   |#37:8 |reposi...|true  |npm-ho...|         |npm-pr...|{storage={strictContentTypeValidation=true, writePolicy=ALLOW_ONCE, blobStoreName=default}}  |

Вывести нужную строку:

select * from repository where @RID = "#38:3"
+----+-----+---------+------+---------+---------+---------+---------------------------------------------------------------------------------------------+
|#   |@RID |@CLASS   |online|recipe_na|routingRu|repositor|attributes                                                                                   |
+----+-----+---------+------+---------+---------+---------+---------------------------------------------------------------------------------------------+
|0   |#38:3|reposi...|true  |docker...|         |docker...|{component={proprietaryComponents=false}, docker={v1Enabled=true, forceBasicAuth=true, htt...|
+----+-----+---------+------+---------+---------+---------+---------------------------------------------------------------------------------------------+

Показать полное значение полей:

orientdb {db=config}> DISPLAY RAW RECORD 0
 
LOW LEVEL CLUSTER INFO
status: PRESENT
cluster fieldId: 9109013009270833256
cluster name: repository_1
in cluster position: 3
empty: false
contentSize: 351
n-pages: 1
 
+----------PAGE_ID---------------+------IN_PAGE_POSITION----------+---------IN_PAGE_SIZE-----------+----PAGE_CONTENT---->>
| 1 | 3 | 360 |ZFoBAAAAFHJlcG9zaXRvcnmDAkYXRpb24AAAEoAAcWd3JpdGVQb2xpY3kAAAEpBwcYbGF0ZXN0UGAHGmJsb2JTdG9yZU5hbWdGUBAf//////////
 
RECORD CONTENT INFO
 class name: repository
 fail on Reading: false
 fail position: 0
 number of properties : 5
 
 PROPERTIES
  property name: attributes
  property type: EMBEDDEDMAP
  property globalId: 65
  fail on reading: false
  property value: {component={proprietaryComponents=false}, docker={v1Enabled=true, forceBasicAuth=true, httpsPort=8083.0, httpPort=8083.0}, storage={strictContentTypeValidation=true, writePolicy=ALLOW, latestPolicy=false, blobStoreName=docker-blob}}
 
  property name: recipe_name
  property type: STRING
  property globalId: 79
  fail on reading: false
  property value: docker-hosted
 
  property name: repository_name
  property type: STRING
  property globalId: 78
  fail on reading: false
  property value: docker-private
 
  property name: online
  property type: BOOLEAN
  property globalId: 81
  fail on reading: false
  property value: true
 
  property name: routingRuleId
  property type: LINK
  property globalId: 80
  fail on reading: false
  property value: null

Сделать бекап:

export database /tmp1/config.export
Exporting current database to: database /tmp1/config.export in GZipped JSON format ...
 
Started export of database 'config' to /tmp1/config.export.gz...
Exporting database info...OK
.......

В файле бекапа посмотреть как правильно пишется значение, поправить значение, проапдейтить:

# обновлять каждую компоненту отдельно - тогда будет проставляться знак равно

update repository set attributes.component={"proprietaryComponents":false}  where @RID="#38:3"
update repository set attributes.docker={"v1Enabled":true,"forceBasicAuth":true,"httpPort":8083.0} where @RID="#38:3"

PS:

Посмотреть таблицы:

orientdb {db=config}> LIST CLASSES
CLASSES
+----+------------------------+-------------+-------------------------------------------------------+-----+
|#   |NAME                    |SUPER-CLASSES|CLUSTERS                                               |COUNT|
+----+------------------------+-------------+-------------------------------------------------------+-----+
|0   |capability              |             |capability(29),capability_1(30)                        |   13|
|1   |change_repo_blobstore   |             |change_repo_blobstore(54),change_repo_blobstore_1(55)  |    0|
|2   |cleanup                 |             |cleanup(35),cleanup_1(36)                              |    3|
|3   |deploymentidentifier    |             |deploymentidentifier(49)                               |    1|
|4   |E                       |             |e(11),e_1(12)                                          |    0|
|5   |email                   |             |email(34)                                              |    1|
|6   |firewall_ignore_patterns|             |firewall_ignore_patterns(22)                           |    1|
|7   |healthcheckconfig       |             |healthcheckconfig(23),healthcheckconfig_1(24)          |   25|
|8   |http_client             |             |http_client(33)                                        |    1|
|9   |key_store               |             |key_store(27),key_store_1(28)                          |    2|
|10  |ldap                    |             |ldap(14),ldap_1(15)                                    |    0|
|11  |ldap_connection         |             |ldap_connection(18),ldap_connection_1(19)              |    0|
|12  |ldap_host               |             |ldap_host(16),ldap_host_1(17)                          |    0|
|13  |ldap_mapping            |             |ldap_mapping(20),ldap_mapping_1(21)                    |    0|
|14  |log4j_visualizer        |             |log4j_visualizer(56)                                   |    0|
|15  |OFunction               |             |ofunction(6)                                           |    0|

Комментарии (0)