mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-10-05 05:36:05 +08:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bcd8929ba3 | ||
|
|
24834396b9 | ||
|
|
280878ebb3 | ||
|
|
51da6a551c |
@@ -125,6 +125,13 @@ jobs:
|
|||||||
node-version-file: '.nvmrc'
|
node-version-file: '.nvmrc'
|
||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
|
|
||||||
|
# Tag builds (RC, formal and sprint releases) ship the tag as the package
|
||||||
|
# version. RC/formal tags already match package.json; sprint tags
|
||||||
|
# (vX.Y.Z-dev-YYYYMMDD) only share its prefix, so pin it here for the build.
|
||||||
|
- name: Pin package version to tag
|
||||||
|
if: ${{ inputs.CI_BUILD_TAG != '' }}
|
||||||
|
run: ./scripts/bump_version.sh "${{ inputs.CI_BUILD_TAG }}"
|
||||||
|
|
||||||
- id: ci-build-pkg
|
- id: ci-build-pkg
|
||||||
name: Build pkg
|
name: Build pkg
|
||||||
run: ./scripts/ci-build-pkg.sh harvester
|
run: ./scripts/ci-build-pkg.sh harvester
|
||||||
|
|||||||
@@ -58,6 +58,12 @@ jobs:
|
|||||||
- name: Setup Nodejs with yarn install
|
- name: Setup Nodejs with yarn install
|
||||||
uses: ./.github/actions/setup
|
uses: ./.github/actions/setup
|
||||||
|
|
||||||
|
# The catalog image is tagged with the package.json version. Sprint tags
|
||||||
|
# (vX.Y.Z-dev-YYYYMMDD) only share its prefix, so pin it to the tag here.
|
||||||
|
- name: Pin package version to tag
|
||||||
|
if: ${{ github.ref_type == 'tag' }}
|
||||||
|
run: ./scripts/bump_version.sh "${{ github.ref_name }}"
|
||||||
|
|
||||||
- name: Build and push UI image
|
- name: Build and push UI image
|
||||||
run: |
|
run: |
|
||||||
publish="yarn publish-pkgs -cp -r ${{ inputs.registry_target }} -o ${{ inputs.registry_user }}"
|
publish="yarn publish-pkgs -cp -r ${{ inputs.registry_target }} -o ${{ inputs.registry_user }}"
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "harvester-ui-extension",
|
"name": "harvester-ui-extension",
|
||||||
"version": "1.9.1-rc1",
|
"version": "1.9.1-rc2",
|
||||||
"private": false,
|
"private": false,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=24.0.0"
|
"node": ">=24.0.0"
|
||||||
|
|||||||
@@ -77,6 +77,10 @@ const FEATURE_FLAGS = {
|
|||||||
'staticIPForVM',
|
'staticIPForVM',
|
||||||
'fsFreezeDeadline',
|
'fsFreezeDeadline',
|
||||||
],
|
],
|
||||||
|
'v1.9.1': [
|
||||||
|
'lvmDmThinOnly',
|
||||||
|
],
|
||||||
|
'v1.10.0': [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateFeatureFlags = () => {
|
const generateFeatureFlags = () => {
|
||||||
|
|||||||
+14
-1
@@ -7,8 +7,12 @@ import { allHash } from '@shell/utils/promise';
|
|||||||
import { clone } from '@shell/utils/object';
|
import { clone } from '@shell/utils/object';
|
||||||
import { HCI } from '../../../types';
|
import { HCI } from '../../../types';
|
||||||
import { NODE } from '@shell/config/types';
|
import { NODE } from '@shell/config/types';
|
||||||
|
import { _CREATE, _CLONE } from '@shell/config/query-params';
|
||||||
import { LVM_TOPOLOGY_LABEL } from '../index.vue';
|
import { LVM_TOPOLOGY_LABEL } from '../index.vue';
|
||||||
|
|
||||||
|
const STRIPED_TYPE = 'striped';
|
||||||
|
const DM_THIN_TYPE = 'dm-thin';
|
||||||
|
|
||||||
const DEFAULT_PARAMETERS = [
|
const DEFAULT_PARAMETERS = [
|
||||||
'type',
|
'type',
|
||||||
'vgName'
|
'vgName'
|
||||||
@@ -54,8 +58,17 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
const node = (this.value.allowedTopologies?.[0]?.matchLabelExpressions || []).find((t) => t.key === LVM_TOPOLOGY_LABEL)?.values[0];
|
const node = (this.value.allowedTopologies?.[0]?.matchLabelExpressions || []).find((t) => t.key === LVM_TOPOLOGY_LABEL)?.values[0];
|
||||||
|
|
||||||
|
// striped is dropped once the LVM add-on reaches GA (v1.9.1); dm-thin is the only supported type.
|
||||||
|
const dmThinOnly = this.$store.getters['harvester-common/getFeatureEnabled']('lvmDmThinOnly');
|
||||||
|
const volumeGroupTypes = dmThinOnly ? [DM_THIN_TYPE] : [STRIPED_TYPE, DM_THIN_TYPE];
|
||||||
|
|
||||||
|
// Default new storage classes to dm-thin, and reset a cloned striped type that is no longer selectable.
|
||||||
|
if (dmThinOnly && [_CREATE, _CLONE].includes(this.realMode) && !volumeGroupTypes.includes(this.value.parameters.type)) {
|
||||||
|
this.value.parameters.type = DM_THIN_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
volumeGroupTypes: ['striped', 'dm-thin'],
|
volumeGroupTypes,
|
||||||
node,
|
node,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "harvester",
|
"name": "harvester",
|
||||||
"description": "Rancher UI Extension for Harvester",
|
"description": "Rancher UI Extension for Harvester",
|
||||||
"version": "1.9.1-rc1",
|
"version": "1.9.1-rc2",
|
||||||
"private": false,
|
"private": false,
|
||||||
"rancher": {
|
"rancher": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|||||||
Reference in New Issue
Block a user