-
-
-
-{{/unless}}
-
+
+
+{{/if}}
diff --git a/app/utils/azure-choices.js b/app/utils/azure-choices.js
index ada9c72f59..f1bc55a964 100644
--- a/app/utils/azure-choices.js
+++ b/app/utils/azure-choices.js
@@ -40,6 +40,22 @@ export let regions = {
"name": "westeurope",
"displayName": "West Europe",
},
+ {
+ "name": "ukwest",
+ "displayName": "UK West",
+ },
+ {
+ "name": "uksouth",
+ "displayName": "UK South",
+ },
+ {
+ "name": "francecentral",
+ "displayName": "France Central",
+ },
+ {
+ "name": "francesouth",
+ "displayName": "France South",
+ },
{
"name": "japanwest",
"displayName": "Japan West",
@@ -48,6 +64,14 @@ export let regions = {
"name": "japaneast",
"displayName": "Japan East",
},
+ {
+ "name": "koreacentral",
+ "displayName": "Korea Central",
+ },
+ {
+ "name": "koreasouth",
+ "displayName": "Korea South",
+ },
{
"name": "brazilsouth",
"displayName": "Brazil South",
@@ -60,6 +84,14 @@ export let regions = {
"name": "australiasoutheast",
"displayName": "Australia Southeast",
},
+ {
+ "name": "australiacentral1",
+ "displayName": "Australia Central 1",
+ },
+ {
+ "name": "australiacentral2",
+ "displayName": "Australia Central 2",
+ },
{
"name": "southindia",
"displayName": "South India",
@@ -80,6 +112,14 @@ export let regions = {
"name": "canadaeast",
"displayName": "Canada East",
},
+ {
+ "name": "southafricawest",
+ "displayName": "South Africa West",
+ },
+ {
+ "name": "southafricanorth",
+ "displayName": "South Africa North",
+ },
{
"name": "westcentralus",
"displayName": "West Central US",
@@ -109,7 +149,7 @@ export let regions = {
"displayName": "China East",
}
].sortBy('name'),
- 'AzureUSGovernment': [
+ 'AzureUSGovernmentCloud': [
{
"name": "usgovvirginia",
"displayName": "US Gov Virginia",
@@ -124,214 +164,19 @@ export let regions = {
},
{
"name": "usgovTexas",
- "displayName": "US GovTexas",
- }
+ "displayName": "US Gov Texas",
+ },
+ {
+ "name": "usdodeast",
+ "displayName": "US DoD East",
+ },
+ {
+ "name": "usdodcentral",
+ "displayName": "US DoD Central",
+ },
].sortBy('name')
};
-export let sizes = [
- {
- group: 'Basic',
- value: 'Basic_A0'
- },
- {
- group: 'Basic',
- value: 'Basic_A1'
- },
- {
- group: 'Basic',
- value: 'Basic_A2'
- },
- {
- group: 'Basic',
- value: 'Basic_A3'
- },
- {
- group: 'Basic',
- value: 'Basic_A4'
- },
- {
- group: 'Standard',
- value: 'Standard_A0'
- },
- {
- group: 'Standard',
- value: 'Standard_A1'
- },
- {
- group: 'Standard',
- value: 'Standard_A2'
- },
- {
- group: 'Standard',
- value: 'Standard_A3'
- },
- {
- group: 'Standard',
- value: 'Standard_A4'
- },
- {
- group: 'Standard',
- value: 'Standard_A5'
- },
- {
- group: 'Standard',
- value: 'Standard_A6'
- },
- {
- group: 'Standard',
- value: 'Standard_A7'
- },
- {
- group: 'Standard',
- value: 'Standard_A8'
- },
- {
- group: 'Standard',
- value: 'Standard_A9'
- },
- {
- group: 'Standard',
- value: 'Standard_A10'
- },
- {
- group: 'Standard',
- value: 'Standard_A11'
- },
- {
- group: 'Standard',
- value: 'Standard_D1'
- },
- {
- group: 'Standard',
- value: 'Standard_D2'
- },
- {
- group: 'Standard',
- value: 'Standard_D3'
- },
- {
- group: 'Standard',
- value: 'Standard_D4'
- },
- {
- group: 'Standard',
- value: 'Standard_D11'
- },
- {
- group: 'Standard',
- value: 'Standard_D12'
- },
- {
- group: 'Standard',
- value: 'Standard_D13'
- },
- {
- group: 'Standard',
- value: 'Standard_D14'
- },
- {
- group: 'Standard',
- value: 'Standard_D1_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D2_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D3_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D4_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D5_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D11_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D12_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D13_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_D14_v2'
- },
- {
- group: 'Standard',
- value: 'Standard_DS1'
- },
- {
- group: 'Standard',
- value: 'Standard_DS2'
- },
- {
- group: 'Standard',
- value: 'Standard_DS3'
- },
- {
- group: 'Standard',
- value: 'Standard_DS12'
- },
- {
- group: 'Standard',
- value: 'Standard_DS13'
- },
- {
- group: 'Standard',
- value: 'Standard_DS14'
- },
- {
- group: 'Standard',
- value: 'Standard_G1'
- },
- {
- group: 'Standard',
- value: 'Standard_G2'
- },
- {
- group: 'Standard',
- value: 'Standard_G3'
- },
- {
- group: 'Standard',
- value: 'Standard_G4'
- },
- {
- group: 'Standard',
- value: 'Standard_G5'
- },
- {
- group: 'Standard',
- value: 'Standard_GS1'
- },
- {
- group: 'Standard',
- value: 'Standard_GS2'
- },
- {
- group: 'Standard',
- value: 'Standard_GS3'
- },
- {
- group: 'Standard',
- value: 'Standard_GS4'
- },
- {
- group: 'Standard',
- value: 'Standard_GS5'
- },
-];
-
export let storageTypes = [
{
name: 'Standard LRS',
@@ -366,6 +211,6 @@ export let environments = [
value: 'AzureChinaCloud'
},
{
- value: 'AzureUSGovernment'
+ value: 'AzureUSGovernmentCloud'
}
-];
\ No newline at end of file
+];
diff --git a/app/utils/azure-vm-choices.js b/app/utils/azure-vm-choices.js
new file mode 100644
index 0000000000..dc9a8d320f
--- /dev/null
+++ b/app/utils/azure-vm-choices.js
@@ -0,0 +1,1421 @@
+export let sizes = [{
+ label: 'General Purpose',
+ series: [{
+ label: 'B-series',
+ invalidRegions: [
+ 'germanycentral',
+ 'germanynortheast',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_B1s',
+ cpu: 1,
+ memory: 1,
+ },
+ {
+ size: 'Standard_B1ms',
+ cpu: 1,
+ memory: 2,
+ },
+ {
+ size: 'Standard_B2s',
+ cpu: 2,
+ memory: 4,
+ },
+ {
+ size: 'Standard_B2ms',
+ cpu: 2,
+ memory: 8,
+ },
+ {
+ size: 'Standard_B4ms',
+ cpu: 4,
+ memory: 16,
+ },
+ {
+ size: 'Standard_B8ms',
+ cpu: 8,
+ memory: 32,
+ }
+ ]
+ }, {
+ label: 'Dsv3-series',
+ invalidRegions: [
+ 'southindia',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_D2s_v3',
+ cpu: 2,
+ memory: 8,
+ },
+ {
+ size: 'Standard_D4s_v3',
+ cpu: 4,
+ memory: 16,
+ },
+ {
+ size: 'Standard_D8s_v3',
+ cpu: 8,
+ memory: 32,
+ },
+ {
+ size: 'Standard_D16s_v3',
+ cpu: 16,
+ memory: 64,
+ },
+ {
+ size: 'Standard_D32s_v3',
+ cpu: 32,
+ memory: 128,
+ },
+ {
+ size: 'Standard_D64s_v3',
+ cpu: 64,
+ memory: 256,
+ }
+ ]
+ }, {
+ label: 'Dv3-series',
+ invalidRegions: [
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_D2_v3',
+ cpu: 2,
+ memory: 8,
+ },
+ {
+ size: 'Standard_D4_v3',
+ cpu: 4,
+ memory: 16,
+ },
+ {
+ size: 'Standard_D8_v3',
+ cpu: 8,
+ memory: 32,
+ },
+ {
+ size: 'Standard_D16_v3',
+ cpu: 16,
+ memory: 64,
+ },
+ {
+ size: 'Standard_D32_v3',
+ cpu: 32,
+ memory: 128,
+ },
+ {
+ size: 'Standard_D64_v3',
+ cpu: 64,
+ memory: 256,
+ },
+ ]
+ },
+ {
+ label: 'DSv2-series',
+ invalidRegions: [
+ 'usgovlowa',
+ ],
+ sizes: [{
+ size: 'Standard_DS1_v2',
+ cpu: 1,
+ memory: 3.5,
+ },
+ {
+ size: 'Standard_DS2_v2',
+ cpu: 2,
+ memory: 7,
+ },
+ {
+ size: 'Standard_DS3_v2',
+ cpu: 4,
+ memory: 14,
+ },
+ {
+ size: 'Standard_DS4_v2',
+ cpu: 8,
+ memory: 28,
+ },
+ {
+ size: 'Standard_DS5_v2',
+ cpu: 16,
+ memory: 56,
+ },
+ ]
+ }, {
+ label: 'Dv2-series',
+ sizes: [{
+ size: 'Standard_D1_v2',
+ cpu: 1,
+ memory: 3.5,
+ },
+ {
+ size: 'Standard_D2_v2',
+ cpu: 2,
+ memory: 7,
+ },
+ {
+ size: 'Standard_D3_v2',
+ cpu: 4,
+ memory: 14,
+ },
+ {
+ size: 'Standard_D4_v2',
+ cpu: 8,
+ memory: 28,
+ },
+ {
+ size: 'Standard_D5_v2',
+ cpu: 16,
+ memory: 56,
+ }
+ ]
+ }, {
+ label: 'DS-series',
+ invalidRegions: [
+ 'northcentralus',
+ 'westcentralus',
+ 'westus2',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_DS1',
+ cpu: 1,
+ memory: 3.5,
+ },
+ {
+ size: 'Standard_DS2',
+ cpu: 2,
+ memory: 7,
+ },
+ {
+ size: 'Standard_DS3',
+ cpu: 4,
+ memory: 14,
+ },
+ {
+ size: 'Standard_DS4',
+ cpu: 8,
+ memory: 28,
+ }
+ ],
+ }, {
+ label: 'D-series',
+ invalidRegions: [
+ 'westcentralus',
+ 'westus2',
+ 'canadaeast',
+ 'canadacentral',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_D1',
+ cpu: 1,
+ memory: 3.5,
+ },
+ {
+ size: 'Standard_D2',
+ cpu: 2,
+ memory: 7,
+ },
+ {
+ size: 'Standard_D3',
+ cpu: 4,
+ memory: 14,
+ },
+ {
+ size: 'Standard_D4',
+ cpu: 8,
+ memory: 28,
+ }
+ ]
+ }, {
+ label: 'Av2-series',
+ sizes: [{
+ size: 'Standard_A1_v2',
+ cpu: 1,
+ memory: 2,
+ },
+ {
+ size: 'Standard_A2_v2',
+ cpu: 2,
+ memory: 4,
+ },
+ {
+ size: 'Standard_A4_v2',
+ cpu: 4,
+ memory: 8,
+ },
+ {
+ size: 'Standard_A8_v2',
+ cpu: 8,
+ memory: 16,
+ },
+ {
+ size: 'Standard_A2m_v2',
+ cpu: 2,
+ memory: 16,
+ },
+ {
+ size: 'Standard_A4m_v2',
+ cpu: 4,
+ memory: 32,
+ },
+ {
+ size: 'Standard_A8m_v2',
+ cpu: 8,
+ memory: 64,
+ }
+ ]
+ }, {
+ label: 'A-series',
+ sizes: [{
+ size: 'Standard_A0',
+ cpu: 1,
+ memory: 0.75,
+ },
+ {
+ size: 'Standard_A1',
+ cpu: 1,
+ memory: 1.75,
+ },
+ {
+ size: 'Standard_A2',
+ cpu: 2,
+ memory: 3.5,
+ },
+ {
+ size: 'Standard_A3',
+ cpu: 4,
+ memory: 7,
+ },
+ {
+ size: 'Standard_A4',
+ cpu: 8,
+ memory: 14,
+ },
+ {
+ size: 'Standard_A5',
+ cpu: 2,
+ memory: 14,
+ },
+ {
+ size: 'Standard_A6',
+ cpu: 4,
+ memory: 28,
+ },
+ {
+ size: 'Standard_A7',
+ cpu: 8,
+ memory: 56,
+ }
+ ]
+ },
+ {
+ label: 'Basic A',
+ sizes: [{
+ size: 'Basic_A0',
+ cpu: 1,
+ memory: 0.75,
+ },
+ {
+ size: 'Basic_A1',
+ cpu: 1,
+ memory: 1.75,
+ },
+ {
+ size: 'Basic_A2',
+ cpu: 2,
+ memory: 3.5,
+ },
+ {
+ size: 'Basic_A3',
+ cpu: 4,
+ memory: 7,
+ },
+ {
+ size: 'Basic_A4',
+ cpu: 8,
+ memory: 14,
+ },
+ ],
+ }
+ ]
+ },
+ {
+ label: 'Compute Optimized',
+ series: [{
+ label: 'Fsv2-series',
+ invalidRegions: [
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'westus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'southeastasia',
+ 'eastasia',
+ 'australiaeast',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japaneast',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_F2s_v2',
+ cpu: 2,
+ memory: 4,
+ },
+ {
+ size: 'Standard_F4s_v2',
+ cpu: 4,
+ memory: 8,
+ },
+ {
+ size: 'Standard_F8s_v2',
+ cpu: 8,
+ memory: 16,
+ },
+ {
+ size: 'Standard_F16s_v2',
+ cpu: 16,
+ memory: 32,
+ },
+ {
+ size: 'Standard_F32s_v2',
+ cpu: 32,
+ memory: 64,
+ },
+ {
+ size: 'Standard_F64s_v2',
+ cpu: 64,
+ memory: 128,
+ },
+ {
+ size: 'Standard_F72s_v2',
+ cpu: 72,
+ memory: 144,
+ }
+ ],
+ },
+ {
+ label: 'Fs-series',
+ invalidRegions: [
+ 'usgovlowa',
+ ],
+ sizes: [{
+ size: 'Standard_F1s',
+ cpu: 1,
+ memory: 2,
+ },
+ {
+ size: 'Standard_F2s',
+ cpu: 2,
+ memory: 4,
+ },
+ {
+ size: 'Standard_F4s',
+ cpu: 4,
+ memory: 8,
+ },
+ {
+ size: 'Standard_F8s',
+ cpu: 8,
+ memory: 16,
+ },
+ {
+ size: 'Standard_F16s',
+ cpu: 16,
+ memory: 32,
+ },
+ ]
+ }, {
+ label: 'F-series',
+ sizes: [{
+ size: 'Standard_F1',
+ cpu: 1,
+ memory: 2,
+ },
+ {
+ size: 'Standard_F2',
+ cpu: 2,
+ memory: 4,
+ },
+ {
+ size: 'Standard_F4',
+ cpu: 4,
+ memory: 8,
+ },
+ {
+ size: 'Standard_F8',
+ cpu: 8,
+ memory: 16,
+ },
+ {
+ size: 'Standard_F16',
+ cpu: 16,
+ memory: 32,
+ },
+ ]
+ }
+ ]
+ },
+ {
+ label: 'Memory Optimized',
+ series: [{
+ label: 'Esv3-series',
+ invalidRegions: [
+ 'westcentralus',
+ 'francecentral',
+ 'francesouth',
+ 'westindia',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_E2s_v3',
+ cpu: 2,
+ memory: 16,
+ },
+ {
+ size: 'Standard_E4s_v3',
+ cpu: 4,
+ memory: 32,
+ },
+ {
+ size: 'Standard_E8s_v3',
+ cpu: 8,
+ memory: 64,
+ },
+ {
+ size: 'Standard_E16s_v3',
+ cpu: 16,
+ memory: 128,
+ },
+ {
+ size: 'Standard_E32s_v3',
+ cpu: 32,
+ memory: 256,
+ },
+ {
+ size: 'Standard_E64s_v3',
+ cpu: 64,
+ memory: 432,
+ },
+ {
+ size: 'Standard_E64is_v3',
+ cpu: 64,
+ memory: 432,
+ }
+ ]
+ },
+ {
+ label: 'Ev3-series',
+ invalidRegions: [
+ 'westcentralus',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_E2_v3',
+ cpu: 2,
+ memory: 16,
+ },
+ {
+ size: 'Standard_E4_v3',
+ cpu: 4,
+ memory: 32,
+ },
+ {
+ size: 'Standard_E8_v3',
+ cpu: 8,
+ memory: 64,
+ },
+ {
+ size: 'Standard_E16_v3',
+ cpu: 16,
+ memory: 128,
+ },
+ {
+ size: 'Standard_E32_v3',
+ cpu: 32,
+ memory: 256,
+ },
+ {
+ size: 'Standard_E64_v3',
+ cpu: 64,
+ memory: 432,
+ },
+ {
+ size: 'Standard_E64i_v3',
+ cpu: 64,
+ memory: 432,
+ }
+ ]
+ },
+ {
+ label: 'M-series',
+ invalidRegions: [
+ 'eastus',
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'westus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiaeast',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japaneast',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_M64s',
+ cpu: 64,
+ memory: 1024,
+ },
+ {
+ size: 'Standard_M64ms',
+ cpu: 64,
+ memory: 1792,
+ },
+ {
+ size: 'Standard_M128s',
+ cpu: 128,
+ memory: 2048,
+ },
+ {
+ size: 'Standard_M128ms',
+ cpu: 128,
+ memory: 3800,
+ },
+ ]
+ },
+ {
+ label: 'GS-series',
+ invalidRegions: [
+ 'eastus',
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'westus2',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_GS1',
+ cpu: 2,
+ memory: 28,
+ },
+ {
+ size: 'Standard_GS2',
+ cpu: 4,
+ memory: 56,
+ },
+ {
+ size: 'Standard_GS3',
+ cpu: 8,
+ memory: 112,
+ },
+ {
+ size: 'Standard_GS4',
+ cpu: 16,
+ memory: 224,
+ },
+ {
+ size: 'Standard_GS5',
+ cpu: 32,
+ memory: 448,
+ }
+ ]
+ },
+ {
+ label: 'G-series',
+ invalidRegions: [
+ 'eastus',
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanynortheast',
+ 'ukwest',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_G1',
+ cpu: 2,
+ memory: 28,
+ },
+ {
+ size: 'Standard_G2',
+ cpu: 4,
+ memory: 56,
+ },
+ {
+ size: 'Standard_G3',
+ cpu: 8,
+ memory: 112,
+ },
+ {
+ size: 'Standard_G4',
+ cpu: 16,
+ memory: 224,
+ },
+ {
+ size: 'Standard_G5',
+ cpu: 32,
+ memory: 448,
+ }
+ ]
+ },
+ {
+ label: 'DSv2-series',
+ invalidRegions: [
+ 'usgovlowa',
+ ],
+ sizes: [{
+ size: 'Standard_DS11_v2',
+ cpu: 2,
+ memory: 14,
+ },
+ {
+ size: 'Standard_DS12_v2',
+ cpu: 4,
+ memory: 28,
+ },
+ {
+ size: 'Standard_DS13_v2',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_DS14_v2',
+ cpu: 16,
+ memory: 112,
+ },
+ {
+ size: 'Standard_DS15_v2',
+ cpu: 20,
+ memory: 140,
+ },
+ ]
+ },
+ {
+ label: 'Dv2-series',
+ sizes: [{
+ size: 'Standard_D11_v2',
+ cpu: 2,
+ memory: 14,
+ },
+ {
+ size: 'Standard_D12_v2',
+ cpu: 4,
+ memory: 28,
+ },
+ {
+ size: 'Standard_D13_v2',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_D14_v2',
+ cpu: 16,
+ memory: 112,
+ },
+ {
+ size: 'Standard_D15_v2',
+ cpu: 20,
+ memory: 140,
+ },
+ ]
+ },
+ {
+ label: 'DS-series',
+ invalidRegions: [
+ 'northcentralus',
+ 'westcentralus',
+ 'westus2',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_DS11',
+ cpu: 2,
+ memory: 14,
+ },
+ {
+ size: 'Standard_DS12',
+ cpu: 4,
+ memory: 28,
+ },
+ {
+ size: 'Standard_DS13',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_DS14',
+ cpu: 16,
+ memory: 112,
+ }
+ ]
+ },
+ {
+ label: 'D-series',
+ invalidRegions: [
+ 'westcentralus',
+ 'westus2',
+ 'canadaeast',
+ 'canadacentral',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_D11',
+ cpu: 2,
+ memory: 14,
+ },
+ {
+ size: 'Standard_D12',
+ cpu: 4,
+ memory: 28,
+ },
+ {
+ size: 'Standard_D13',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_D14',
+ cpu: 16,
+ memory: 112,
+ }
+ ]
+ }
+ ]
+ },
+ {
+ label: 'Storage Optimized',
+ series: [{
+ label: 'Ls-series',
+ invalidRegions: [
+ 'eastus',
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_L4s',
+ cpu: 4,
+ memory: 32,
+ },
+ {
+ size: 'Standard_L8s',
+ cpu: 8,
+ memory: 64,
+ },
+ {
+ size: 'Standard_L16s',
+ cpu: 16,
+ memory: 128,
+ },
+ {
+ size: 'Standard_L32s',
+ cpu: 32,
+ memory: 256,
+ },
+ ]
+ }]
+ },
+ {
+ label: 'GPU',
+ series: [{
+ label: 'NC-series',
+ invalidRegions: [
+ 'centralus',
+ 'westcentralus',
+ 'westus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'southeastasia',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japaneast',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_NC6',
+ cpu: 6,
+ memory: 56,
+ },
+ {
+ size: 'Standard_NC12',
+ cpu: 12,
+ memory: 112,
+ },
+ {
+ size: 'Standard_NC24',
+ cpu: 24,
+ memory: 224,
+ },
+ {
+ size: 'Standard_NC24r',
+ cpu: 24,
+ memory: 224,
+ },
+ ]
+ },
+ {
+ label: 'NCv2-series',
+ invalidRegions: [
+ 'eastus2',
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'westus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiaeast',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japaneast',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_NC6s_v2',
+ cpu: 6,
+ memory: 112,
+ },
+ {
+ size: 'Standard_NC12s_v2',
+ cpu: 12,
+ memory: 224,
+ },
+ {
+ size: 'Standard_NC24s_v2',
+ cpu: 24,
+ memory: 448,
+ },
+ {
+ size: 'Standard_NC24rs_v2',
+ cpu: 24,
+ memory: 448,
+ },
+ ]
+ },
+ {
+ label: 'NCv3-series',
+ invalidRegions: [
+ 'eastus2',
+ 'centralus',
+ 'northcentralus',
+ 'westcentralus',
+ 'westus',
+ 'westus2',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'eastasia',
+ 'southeastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiaeast',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japaneast',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_NC6s_v3',
+ cpu: 6,
+ memory: 112,
+ },
+ {
+ size: 'Standard_NC12s_v3',
+ cpu: 12,
+ memory: 224,
+ },
+ {
+ size: 'Standard_NC24s_v3',
+ cpu: 24,
+ memory: 448,
+ },
+ {
+ size: 'Standard_NC24rs_v3',
+ cpu: 24,
+ memory: 448,
+ },
+ ]
+ },
+ {
+ label: 'ND-series',
+ invalidRegions: [
+ 'eastus2',
+ 'centralus',
+ 'northcentralus',
+ 'southcentralus',
+ 'westcentralus',
+ 'westus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'northeurope',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiaeast',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'japaneast',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_ND6s',
+ cpu: 6,
+ memory: 112,
+ },
+ {
+ size: 'Standard_ND12s',
+ cpu: 12,
+ memory: 224,
+ },
+ {
+ size: 'Standard_ND24s',
+ cpu: 24,
+ memory: 448,
+ },
+ {
+ size: 'Standard_ND24rs',
+ cpu: 24,
+ memory: 448,
+ },
+ ]
+ },
+ {
+ label: 'NV-series',
+ invalidRegions: [
+ 'centralus',
+ 'westcentralus',
+ 'westus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiasoutheast',
+ 'westindia',
+ 'southindia',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_NV6',
+ cpu: 6,
+ memory: 56,
+ },
+ {
+ size: 'Standard_NV12',
+ cpu: 12,
+ memory: 112,
+ },
+ {
+ size: 'Standard_NV24',
+ cpu: 24,
+ memory: 224,
+ }
+ ]
+ }
+ ]
+ },
+ {
+ label: 'High Performance Compute',
+ series: [{
+ label: 'H-series',
+ invalidRegions: [
+ 'eastus2',
+ 'centralus',
+ 'westcentralus',
+ 'canadaeast',
+ 'canadacentral',
+ 'brazilsouth',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'eastasia',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiasoutheast',
+ 'westindia',
+ 'southindia',
+ 'japanwest',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_H8',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_H16',
+ cpu: 16,
+ memory: 112,
+ },
+ {
+ size: 'Standard_H8m',
+ cpu: 8,
+ memory: 112,
+ },
+ {
+ size: 'Standard_H16m',
+ cpu: 16,
+ memory: 224,
+ },
+ {
+ size: 'Standard_H16r',
+ cpu: 16,
+ memory: 112,
+ },
+ {
+ size: 'Standard_H16mr',
+ cpu: 16,
+ memory: 224,
+ }
+ ]
+ },
+ {
+ label: 'A-series',
+ invalidRegions: [
+ 'westcentralus',
+ 'westus2',
+ 'canadaeast',
+ 'canadacentral',
+ 'francecentral',
+ 'francesouth',
+ 'germanycentral',
+ 'germanynortheast',
+ 'ukwest',
+ 'uksouth',
+ 'australiacentral1',
+ 'australiacentral2',
+ 'australiaeast',
+ 'australiasoutheast',
+ 'centralindia',
+ 'westindia',
+ 'southindia',
+ 'koreacentral',
+ 'koreasouth',
+ 'usgovvirginia',
+ 'usgovlowa',
+ 'usgovarizona',
+ 'usgovTexas',
+ 'usdodeast',
+ 'usdodcentral',
+ ],
+ sizes: [{
+ size: 'Standard_A8',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_A9',
+ cpu: 16,
+ memory: 112,
+ },
+ {
+ size: 'Standard_A10',
+ cpu: 8,
+ memory: 56,
+ },
+ {
+ size: 'Standard_A11',
+ cpu: 16,
+ memory: 112,
+ }
+ ]
+ }
+ ],
+ },
+];
diff --git a/app/utils/constants.js b/app/utils/constants.js
index 75d2df65b1..cf946e6a1a 100644
--- a/app/utils/constants.js
+++ b/app/utils/constants.js
@@ -50,6 +50,7 @@ var C = {
COMMUNITY_KEY: 'community',
COMMUNITY_VALUE: 'https://git.rancher.io/community-catalog.git',
DEFAULT_BRANCH: 'master',
+ LIBRARY_BRANCH: '${RELEASE}',
},
COOKIE: {
@@ -149,6 +150,8 @@ var C = {
STACK_NAME: 'io.rancher.stack.name',
STACK_UUID: 'io.rancher.stack.uuid',
SYSTEM_TYPE: 'io.rancher.container.system',
+ PER_HOST_SUBNET: 'io.rancher.network.per_host_subnet.subnet',
+ PER_HOST_SUBNET_ROUTING_IP: 'io.rancher.network.per_host_subnet.router_ip',
// Catalog
CERTIFIED: 'io.rancher.certified',
@@ -167,6 +170,7 @@ var C = {
// Kubernetes
K8S_DASHBOARD: 'io.rancher.k8s.kubernetes-dashboard',
K8S_KUBECTL: 'io.rancher.k8s.kubectld',
+ K8S_TOKEN: 'io.rancher.k8s.token',
K8S_POD_NAME: 'io.kubernetes.pod.name',
K8S_POD_NAMESPACE: 'io.kubernetes.pod.namespace',
@@ -183,6 +187,9 @@ var C = {
LAUNCH_CONFIG: 'io.rancher.service.launch.config',
LAUNCH_CONFIG_PRIMARY: 'io.rancher.service.primary.launch.config',
SIDEKICK: 'io.rancher.sidekicks',
+ SERVICE_UI_PATH: 'io.rancher.service.ui_link.path',
+ SERVICE_UI_PORT: 'io.rancher.service.ui_link.port',
+ SERVICE_UI_LABEL: 'io.rancher.service.ui_link.label',
},
PREFS: {
@@ -351,6 +358,7 @@ var C = {
RACKSPACE: 'rackspace',
UBIQUITY: 'ubiquity',
VMWAREVSPHERE: 'vmwarevsphere',
+ OTC: 'otc',
OTHER: 'other',
CUSTOM: 'custom',
ALIYUNECS: 'aliyunecs',
diff --git a/app/utils/errors.js b/app/utils/errors.js
index 536fa8fcc4..70d4c5a4c1 100644
--- a/app/utils/errors.js
+++ b/app/utils/errors.js
@@ -67,7 +67,7 @@ export default {
}
else
{
- str = err.get('message');
+ str = err.get('message') || err.get('xhr.message');
if ( err.get('detail') )
{
if ( str )
diff --git a/app/utils/navigation-tree.js b/app/utils/navigation-tree.js
index c660898a3b..ee630ed897 100644
--- a/app/utils/navigation-tree.js
+++ b/app/utils/navigation-tree.js
@@ -12,7 +12,7 @@ export const swarmReady = function() { return this.get('swarmReady'); };
export const swarmNotReady = function() { return !this.get('swarmReady'); };
export const mesosReady = function() { return this.get('mesosReady'); };
export const mesosNotReady = function() { return !this.get('mesosReady'); };
-export const isOwner = function() { return this.get('isOwner'); };
+export const isOwner = function() { return this.get('access').isOwner(); };
/* Tree item options
{
@@ -416,7 +416,6 @@ function getStacksSubtree() {
icon: 'icon icon-tag',
route: 'stacks',
ctx: [getProjectId],
- condition: isOwner,
queryParams: {which: C.EXTERNAL_ID.KIND_ALL, tags: choice},
});
});
@@ -474,7 +473,7 @@ function getCatalogSubtree() {
out.push({divider: true});
}
- repos.forEach((repo) => {
+ repos.sortBy('name').forEach((repo) => {
out.push({
id: 'catalog-'+repo.get('id'),
label: repo.get('name'),
diff --git a/app/utils/parse-port.js b/app/utils/parse-port.js
index f5b0b033f1..62e9107975 100644
--- a/app/utils/parse-port.js
+++ b/app/utils/parse-port.js
@@ -4,7 +4,7 @@ import Ember from 'ember';
// hostIp::containerPort
// hostPort:containerPort
// containerPort
-export function parsePortSpec(str, defaultProtocol='http') {
+export function parsePortSpec(str, defaultProtocol) {
str = str.trim();
var match, parts, hostIp = '', hostPort, containerPort, protocol;
diff --git a/app/utils/validate-dns.js b/app/utils/validate-dns.js
new file mode 100644
index 0000000000..8ae60f7588
--- /dev/null
+++ b/app/utils/validate-dns.js
@@ -0,0 +1,54 @@
+export function validateHostname(hostname){
+ //hostname can not start with a dot
+ if (hostname.slice(0,1) ==='.'){
+ return false;
+ }
+ //hostname can not be empty string
+ if (hostname.length === 0){
+ return false;
+ }
+ //total length of the hostname can be at most 253 characters (255 minus one for null-termination, and one for the trailing dot if not already present)
+ if (hostname.length > 253) {
+ return false;
+ }
+ //split the hostname with the dot and validate the element as label
+ let labels = hostname.split(/\./);
+ for(var i = 0; i < labels.length; i++){
+ let label = labels[i];
+ //hostname can end with a dot (this makes it an explicitly fully qualified domain name, but is not always desirable)
+ //it meas that the last element of the labels can be empty string.
+ if (i === labels.length-1 && label === ""){
+ continue;
+ }
+ if (!validateLabel(label)){
+ return false;
+ }
+ }
+ return true;
+}
+
+export function validateLabel(label){
+ let test = label.toLowerCase();
+ //label must consist of the characters a-z (case-insensitive), 0-9, and hyphen
+ if (!test.match(/^[a-z0-9-]+$/i)){
+ return false;
+ }
+ //label cannot start with or end with a hyphen
+ if (test.slice(0,1) === '-' || test.slice(-1) === '-') {
+ return false;
+ }
+ //label cannot contain two consecutive hyphens
+ if (test.includes('--')){
+ return false;
+ }
+ //label must be 1-63 characters
+ if (test.length < 1 || test.length > 63){
+ return false;
+ }
+ return true;
+}
+
+export default {
+ validateHostname:validateHostname,
+ validateLabel:validateLabel,
+};
\ No newline at end of file
diff --git a/app/utils/xterm-fit-addon.js b/app/utils/xterm-fit-addon.js
new file mode 100644
index 0000000000..d33b9f7413
--- /dev/null
+++ b/app/utils/xterm-fit-addon.js
@@ -0,0 +1,34 @@
+
+export function proposeGeometry(term) {
+ if (!term.element.parentElement) {
+ return null;
+ }
+ var parentElementStyle = window.getComputedStyle(term.element.parentElement),
+ parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')),
+ parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')) - 17),
+ elementStyle = window.getComputedStyle(term.element),
+ elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')),
+ elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left')),
+ availableHeight = parentElementHeight - elementPaddingVer,
+ availableWidth = parentElementWidth - elementPaddingHor,
+ subjectRow = term.rowContainer.firstElementChild,
+ contentBuffer = subjectRow.innerHTML,
+ characterHeight,
+ rows,
+ characterWidth,
+ cols,
+ geometry;
+
+ subjectRow.style.display = 'inline';
+ subjectRow.innerHTML = 'W'; // Common character for measuring width, although on monospace
+ characterWidth = subjectRow.getBoundingClientRect().width;
+ subjectRow.style.display = ''; // Revert style before calculating height, since they differ.
+ characterHeight = parseInt(subjectRow.offsetHeight);
+ subjectRow.innerHTML = contentBuffer;
+
+ rows = Math.floor(availableHeight / characterHeight);
+ cols = Math.floor(availableWidth / characterWidth);
+
+ geometry = { cols: cols, rows: rows };
+ return geometry;
+ }
\ No newline at end of file
diff --git a/ember-cli-build.js b/ember-cli-build.js
index 762b0364bc..1266694fa1 100644
--- a/ember-cli-build.js
+++ b/ember-cli-build.js
@@ -3,6 +3,8 @@
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var util = require('util');
var env = EmberApp.env();
+var nodeSass = require('node-sass');
+
module.exports = function(defaults) {
// Pull in a few useful environment settings for index.html to use
@@ -25,7 +27,9 @@ module.exports = function(defaults) {
},
storeConfigInMeta: false,
inlineContent: inline,
-
+ sassOptions: {
+ implementation: nodeSass
+ },
outputPaths: {
app: {
css: {
@@ -36,7 +40,7 @@ module.exports = function(defaults) {
},
nodeAssets: {
'xterm': {
- import: ['src/xterm.css']
+ import: ['dist/xterm.css']
},
'lacsso': {
import: ['lacsso.css']
diff --git a/package.json b/package.json
index d21900625b..9d7efb036f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ui",
- "version": "1.6.4",
+ "version": "1.6.52",
"private": true,
"directories": {
"doc": "doc",
@@ -23,6 +23,7 @@
"devDependencies": {
"ansi_up": "^1.3.0",
"broccoli-asset-rev": "^2.4.5",
+ "dompurify": "^1.0.11",
"ember-api-store": "2.2.0",
"ember-browserify": "^1.0.1",
"ember-cli": "2.9.1",
@@ -39,7 +40,7 @@
"ember-cli-qunit": "^3.0.1",
"ember-cli-release": "^0.2.9",
"ember-cli-rtlcss": "0.0.1",
- "ember-cli-sass": "^5.1.0",
+ "ember-cli-sass": "^10.0.1",
"ember-cli-sri": "^2.1.0",
"ember-cli-test-loader": "^1.1.0",
"ember-cli-uglify": "^1.2.0",
@@ -55,12 +56,15 @@
"forever-agent": "^0.6.1",
"glob": "^5.0.3",
"http-proxy": "^1.11.1",
- "lacsso": "0.0.58",
- "liquid-fire": "0.26.4",
+ "lacsso": "0.0.59",
+ "liquid-fire": "^0.27.3",
"loader.js": "^4.0.10",
"semver": "^5.3.0",
"shell-quote": "^1.4.3",
- "xterm": "1.0.0",
+ "xterm": "^2.5.0",
"yamljs": "^0.2.7"
+ },
+ "dependencies": {
+ "node-sass": "^4.12.0"
}
}
diff --git a/public/assets/images/providers/exoscale.svg b/public/assets/images/providers/exoscale.svg
index 37c8f57a71..e99c000484 100644
--- a/public/assets/images/providers/exoscale.svg
+++ b/public/assets/images/providers/exoscale.svg
@@ -1,43 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/public/assets/images/providers/otc-tsystems.png b/public/assets/images/providers/otc-tsystems.png
new file mode 100644
index 0000000000..148d3d0ecd
Binary files /dev/null and b/public/assets/images/providers/otc-tsystems.png differ
diff --git a/scripts/build-static b/scripts/build-static
index 7a57c6a06b..cb7921ae86 100755
--- a/scripts/build-static
+++ b/scripts/build-static
@@ -127,8 +127,8 @@ if [[ $LATEST -eq 1 ]] && [[ $TAG -eq 1 ]]; then
fi
fi
-if ( [[ $TAG -eq 1 ]] || [[ $UPLOAD -ne 0 ]] ) && [[ "${BRANCH}" != "master" ]]; then
- echo "You can only tag or upload the master branch (you are on '${BRANCH}')."
+if ( [[ $TAG -eq 1 ]] || [[ $UPLOAD -ne 0 ]] ) && [[ "${BRANCH}" != "1.6-dev" ]]; then
+ echo "You can only tag or upload the master 1.6-dev (you are on '${BRANCH}')."
if [[ $FORCE -ne 1 ]]; then
exit 1;
fi
@@ -186,6 +186,9 @@ fi;
echo "Building Hosted Version..."
FINGERPRINT="${FINGERPRINT}" RANCHER="" CATALOG="" BASE_ASSETS="//${CDN}/${VERSION}/" runCmd ./node_modules/.bin/ember build --environment=${ENVIRONMENT} --output-path=${BUILD_DIR}
+# Remove .DS_Store files
+runCmd find ${BUILD_DIR} -name '.DS_Store' -exec rm {} \;
+
# Create a file containing the version
echo "${PKG_VERSION}" > ${BUILD_DIR}/VERSION.txt
diff --git a/tests/unit/utils/parse-port-test.js b/tests/unit/utils/parse-port-test.js
index 019ec4aa18..254b0802ff 100644
--- a/tests/unit/utils/parse-port-test.js
+++ b/tests/unit/utils/parse-port-test.js
@@ -21,7 +21,7 @@ var data = [
data.forEach(function(obj) {
var input = obj.str;
- var actual = parsePortSpec(input);
+ var actual = parsePortSpec(input,'http');
if ( obj.parsed )
{
diff --git a/tests/unit/utils/validate-dns-test.js b/tests/unit/utils/validate-dns-test.js
new file mode 100644
index 0000000000..5a75a81f24
--- /dev/null
+++ b/tests/unit/utils/validate-dns-test.js
@@ -0,0 +1,36 @@
+import { module, test } from 'qunit';
+import {validateHostname} from "ui/utils/validate-dns";
+
+module('Unit | Utils | validate-dns');
+
+//test case
+let hostnames = [
+ {str:"aA0",result:true},
+ {str:"a",result:true},
+ //chec for dot
+ {str:".aA0",result:false},
+ {str:"aA0.",result:true},
+ {str:"a.A0",result:true},
+ {str:"a..A0",result:false},
+ //check for dash
+ {str:"a-A0",result:true},
+ {str:"-aA0",result:false},
+ {str:"aA0-",result:false},
+ {str:"a--A0",result:false},
+ //check for specifical character
+ {str:"aA0/",result:false},
+ {str:"a/A0",result:false},
+ {str:"/aA0",result:false},
+ //check for length
+ {str:"",result:false},
+ {str:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678900",result:true},
+ {str:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789000",result:false},
+ {str:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678900.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678900.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",result:true},
+ {str:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678900.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678900.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678900.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",result:false},
+];
+
+hostnames.forEach(function(element) {
+ var input = element.str;
+ var result = validateHostname(input);
+ test("validating "+input,function(assert){assert.strictEqual(result,element.result,'validate correctly');});
+}, this);
\ No newline at end of file
diff --git a/translations/de-de.yaml b/translations/de-de.yaml
index eee8160770..2379c45bd1 100644
--- a/translations/de-de.yaml
+++ b/translations/de-de.yaml
@@ -2096,8 +2096,8 @@ stackSection:
}
sidekick: |
{numSidekicks, plural,
- =1 {Sidekick}
- other {Sidekicks}
+ =1 {+ 1 Sidekick}
+ other {+ # Sidekicks}
}
add:
service: Service hinzufügen
diff --git a/translations/en-us.yaml b/translations/en-us.yaml
index 03f3c3b34b..c377aec11b 100644
--- a/translations/en-us.yaml
+++ b/translations/en-us.yaml
@@ -17,6 +17,7 @@ generic:
disable: Disable
disabled: Disabled
domainName: Domain Name
+ edit: Edit
emptyString: ""
enable: Enable
enabled: Enabled
@@ -484,6 +485,7 @@ containersPage:
on: on
in: in
infoMultiStats:
+ created: 'Created:'
tooltip:
host: Copy IP To Clipboard
host: 'Host:'
@@ -734,6 +736,8 @@ loginPage:
shibbolethMessage: "{appName} uses Shibboleth to manage accounts. Click the button below to log in to the configured Shibboleth IDP."
shibbolethError:
401: "Unauthorized"
+ 403: "Forbidden"
+ 422: "Unprocessable Entity"
500: "Internal Server Error"
generic: "There was an error ({errorCode}) while trying to log you in. Please try again."
error:
@@ -1146,6 +1150,8 @@ ldap:
openldap: OpenLDAP
ad: Active Directory
header:
+ editing:
+ label: Edit Active Directory Configuration
enabled:
label: "{providerName} is enabled"
required: |
@@ -1172,10 +1178,9 @@ ldap:
disabled:
label: "{providerName} is not configured"
warning: "{appName} can be configured to restrict access to a set of {providerName} users and groups. This is not currently set up, so anybody that reach this page (or the API) has full control over the system."
-
accessEnabled:
header: Authentication
- subtext: "To change the server configuration, disable access control below and then set it up again."
+ subtext: "To change the server configuration, select the edit button and test the new configuration before saving."
general:
header: General
server: "Server:"
@@ -1183,6 +1188,7 @@ ldap:
serviceAccount: "Service Account:"
searchBase: "Search Base:"
defaultDomain: "Default Domain:"
+ timeout: "Connection Timeout:"
users:
header: Users
objectClass: "Object Class:"
@@ -1203,22 +1209,18 @@ ldap:
pre: Disable access control
post: "Are you sure? Click again to really disable access control"
accessConfig:
- header: "1. Configure an {providerName} server"
+ header: "Configure an {providerName} server"
subtext1: "Enter the address, port, and protocol to connect to your {providerName} server.
389 is the standard port for insecure,
636 for TLS."
subtext2: "{appName} needs a service account that has (read-only) access to all of the domains that will be able to login, so that we can determine what groups a user is a member of when they make a request with an API key."
- hostName:
- labelText: Hostname or IP Address
+ advanced:
+ open: Hide Advanced
+ closed: Show Advanced
+ timeout:
+ labelText: Connection Timeout
+ unit: ms
port:
labelText: Port
checkbox: TLS
- serviceUsername:
- labelText: Service Account Username
- servicePassword:
- labelText: Service Account Password
- userSearchBase:
- labelText: User Search Base
- placeholder: "e.g. ou=Users,dc=mycompany,dc=com"
- helpText: "Only users below this base will be used."
groupSearchBase:
labelText: Group Search Base
placeholder: "e.g. ou=Groups,dc=mycompany,dc=com"
@@ -1228,7 +1230,7 @@ ldap:
labelText: Default Login Domain
placeholder: "e.g. mycompany"
customizeSchema:
- header: "2. Customize Schema"
+ header: "Customize Schema"
helpText: "If your schema does not match the standard ActiveDirectory format, you can customize it here."
users:
header: Users
@@ -1263,7 +1265,8 @@ ldap:
labelText: Group DN Field
placeholder: distinguishedName
testAuth:
- header: "3. Test and enable authentication"
+ header: "Test and enable authentication"
+ editingHeader: "Test and save new configuration"
helpText: "Check that everything is configured correctly by testing authentication with your {providerName} account:"
userName:
labelText: Your Username
@@ -1272,6 +1275,7 @@ ldap:
authenticate:
pre: Authenticate
post: "Testing..."
+ test: Test and Save
servicePartial:
noContainers:
@@ -1546,7 +1550,7 @@ editStack:
envCatalog:
header: Manage Catalogs
- subtext: You can define your own custom catalog sources here, which will be available only to users of this environment. Global catalogs are available to all enviornments and can only be modified in Admin Settings by an administrator. Each catalog needs a unique name and a URL that
git clone can handle (see
docs for more info).
+ subtext: You can define your own custom catalog sources here, which will be available only to users of this environment. Global catalogs are available to all environments and can only be modified in Admin Settings by an administrator. Each catalog needs a unique name and a URL that
git clone can handle (see
docs for more info).
addActionLabel: Add Catalog
stackHeader:
@@ -1575,6 +1579,15 @@ formBalancerRules:
internal: Internal
protocol:
label: Protocol
+ region:
+ label: Region
+ placeholder: e.g. region1
+ environment:
+ label: Environment
+ placeholder: e.g. development
+ weight:
+ label: Weight
+ placeholder: e.g. 1
sourceIp:
label: Host IP
placeholder: e.g. 1.2.3.4
@@ -1606,6 +1619,7 @@ formBalancerRules:
prefix: "Host and Path rules are matched top-to-bottom in the order shown. Backends will be named randomly by default; to customize the generated backends, provide a name and then refer to that in the custom haproxy.cfg. "
showBackendLink: "Show custom backend names."
showIpLink: "Show host IP address options."
+ showRegionLink: "Show region options."
suffix: ""
formCommand:
@@ -1640,6 +1654,9 @@ formCommand:
other {times}
}
always: Always
+ drainTimeout:
+ label: Drain Timeout
+ unit: ms
environment:
label: Environment
addAction: Add Environment Variable
@@ -1981,6 +1998,7 @@ formSecurity:
hyperv: HyperV (VM)
formServiceLinks:
+ asName: as name
addAction: Service Links
noServices: There are no other services to link to.
noLinks: This service has no service links.
@@ -2388,6 +2406,14 @@ machine:
label: Private IP
onlyPrivate:
label: Use only private IP address
+ tags:
+ error: "Tags may not contain comma's. Please fix tag: {tag}"
+ label: EC2 Tags
+ addAction: Add Tag
+ keyLabel: Tag
+ keyPlaceholder: e.g. FOO
+ valueLabel: Value
+ valuePlaceholder: e.g. bar
driverAzure:
helpBlock: 'You can find instructions on how to create a Client ID and Secret
here .'
@@ -2404,8 +2430,10 @@ machine:
image:
label: Image
placeholder: 'canonical:UbuntuServer:16.04.0-LTS:latest'
+ vmType:
+ label: VM Type
size:
- label: Size
+ label: VM Size
dockerPort:
label: Docker Port
placeholder: '2376'
@@ -2479,6 +2507,20 @@ machine:
step2: "Create a transparent Docker Network:"
step2Copy: docker network create -d transparent transparent
step3: Copy, paste, and run the command below in PowerShell to start the {appName} agent.
+ windowsSteps:
+ step1: Start up a Windows Server 2016 machine somewhere and install a
supported version of
Docker on it.
+ step2: "Check and install RemoteAccess and Routing in Windows features:"
+ step2Copy: Get-WindowsFeature -Name "RemoteAccess","Routing" | Install-WindowsFeature
+ step2Note: "Note: Windows machine will need to be rebooted if the applications were installed."
+ step3: Specify a unique subnet for the Windows host. In order to support an overlay network in Windows, each host in the environment must have a unique subnet.
+ step4: Specify the router IP for the host's subnet. This IP is used to forward network traffic between the different hosts.
+ routerIp:
+ placeholder: e.g. 1.2.3.4
+ subnet:
+ placeholder: e.g. 192.168.0.0/24
+ step5: "Specify the public IP that should be registered for this host. If left empty, Rancher will auto-detect the IP to use. This generally works for machines with unique public IPs, but will not work if the machine is behind a firewall/NAT or if it is the same machine that is running the
{rancherImage} container."
+ step6: "Optional: Add labels to be applied to the host."
+ step7: Copy, paste, and run the command below in PowerShell to start the {appName} agent.
driverDigitalocean:
sizeLabel: |
@@ -2512,6 +2554,12 @@ machine:
label: Enable IPv6
privateNetworking:
label: Enable Private Networking
+ monitoring:
+ label: Enable Monitoring
+ tags:
+ addActionLabel: Add Droplet Tag
+ valueLabel: Tags
+ placeholder: e.g. dev
driverExoscale:
accountSection: Account Access
@@ -2523,7 +2571,7 @@ machine:
placeholder: Your Exoscale secret key
provided: Provided
accountHelp: Paste in your Exoscale key pair here. We'll use this key to create your new Instances.
- loginAction: "Next: Authenticate & select a Security Group"
+ loginAction: "Next: Authenticate & select a Zone"
loadingSecurity: Loading security group info from Exoscale...
securityGroupSection: Security Group
securityGroup:
@@ -2533,6 +2581,11 @@ machine:
custom: "Custom: Choose an existing group"
updating: Updating Security Group...
creating: Creating Security Group...
+ loadingZone: Loading zone info from Exoscale...
+ zoneSection: Zone
+ selectZoneAction: "Next: Select a Security Group"
+ zone:
+ label: Zone
portHelp:
link: Learn more
text: about the ports that will be opened.
@@ -2550,8 +2603,64 @@ machine:
label: Root Size
sshUser:
label: SSH User
- placeholder: 'usr1'
-
+ placeholder: 'picked by default by docker-machine'
+ template:
+ label: Template
+
+ driverOtc:
+ access: Account Access
+ authorize: Authorize
+ next:
+ availability: "Next: Select Availability"
+ networks: "Next: Select Subnet"
+ instance: "Next: Select Instance Options"
+ errors:
+ akId: A Access Key ID is required
+ akS: A Access Key Secret is required
+ project: A Project ID is required
+ loadingAvailability: Loading Availability and VPCs
+ loadingNetworks: Loading Networks
+ loadingFlavors: Loading Instance Options
+ provided:
+ password: Password Provided
+ projectId: Project ID
+ osUsername: OpenStack Username
+ osPassword: OpenStack Password
+ osUserDomainName: OpenStack Domain Name
+ osProjectName: OpenStack Project Name
+ accessKey: Access Key ID
+ accessSecret: Access Key Secret
+ availableZone:
+ header: Availability
+ label:
+ zone: Zone
+ region: Region
+ dropdown:
+ zone: Select a Zone
+ region:
+ vpcAndSecurity:
+ header: Subnet and Security Groups
+ vpc: VPC
+ security: Security Group
+ subnet: Subnet
+ dropdown:
+ vpc: Select a VPC
+ security: Select a Security Group
+ subnet: Select a Subnet
+ instance:
+ header: Instance
+ options: Instance Options
+ flavorid: Flavor ID
+ images: Images
+ sshUser: SSH User
+ rootPassword: Root Password
+ rootVolume: Root Volume Size
+ rootVolumeType: Root Volume Type
+ size: Bandwidth Size
+ dropdown:
+ flavorid: Select a Flavor
+ imageid: Select a Image
+ type: Select a Volume Type
driverOther:
driverSection: Driver
@@ -2684,7 +2793,7 @@ machine:
label: Aliyun SLB ID
placeholder: Aliyun SLB ID
storageSection: Storage Info
- isOptimized:
+ ioOptimized:
label: Instance Storage I/O Optimized
placeholder: none or optimized
systemDiskCategory:
@@ -2724,6 +2833,17 @@ machine:
sshPassword:
label: SSH Password
placeholder: Set Instance SSH Password, Blank for Auto set
+ errors:
+ nameTooShort: The length of the name must equal or more than two.
+ nameNotValid: The name is invalid according to the Aliyun ECS hostname rule.
+ nameTooLong: The length of the name must equal or less than thirty.
+ accessKeyRequired: Access key is required.
+ accessSecretRequired: Access secret is required.
+ sshPasswordLengthNotValid: The length of SSH password must between eight and thirty.
+ sshPasswordInvalidCharacter: SSH password contains invalid characters.
+ sshPasswordFormatError: "SSH password must contain at least three out of four kinds of following characters: uppercase letter, lowercase letters, numbers, and special characters."
+ nameNotValidForApp: The name is invalid according to the {appName} hostname rule.
+
modalAboutComponent:
component: Component
@@ -2851,8 +2971,12 @@ newBalancer:
error:
noRules: "Choose one or more port rules to listen on"
noSourcePort: "Source Port is required on each rule"
+ noRegion: "Region is required for custom service target"
+ noEnvironment: "Environment is required for custom service target"
+ missingEnvironment: "Environment is required"
invalidSourcePort: "Invalid source port: '{num}'"
invalidTargetPort: "Invalid target port: '{num}'"
+ invalidWeight: "Invalid weight: '{num}'"
mixedPort: "Port {num} has multiple rules with conflicting access/protcols"
noTarget: "Target is required on each rule"
needsCertificate: "A certificate is required because there are SSL/TLS port rules"
@@ -2974,6 +3098,17 @@ newReceiver:
max:
label: Maximum Scale
placeholder: e.g. 20
+ payloadFormat:
+ label: Webhook Payload Format
+ alicloud: Alibaba Cloud Docker Hub
+ dockerhub: Docker Hub
+ azure: Azure Container Registry
+ addressType:
+ label: Address Type
+ registry: Public
+ registry-vpc: VPC
+ registry-internal: Classic
+
tag:
label: Image Tag
placeholder: "e.g. latest"
@@ -3001,11 +3136,12 @@ pageFooter:
slack: Slack
download:
link: Download CLI
- headerCli: Rancher CLI (beta)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: Mac OS X
windows: Windows
linux: Linux
+ deprecated: Deprecated
pagination:
multi: |
@@ -3066,6 +3202,9 @@ schema:
option: Choose an option...
inputService:
prompt: Choose a Service...
+ custom:
+ prompt: Custom...
+ placeholder: e.g. region1/environment1/stack1/service1
inputSecret:
prompt: Choose a Secret...
@@ -3483,6 +3622,17 @@ model:
org: Organization
localUser: Local User
unknown: "{type}?"
+ openldapconfig:
+ server:
+ label: Hostname or IP Address
+ serviceAccountUsername:
+ label: Service Account Username
+ serviceAccountPassword:
+ label: Service Account Password
+ domain:
+ label: User Search Base
+ placeholder: "e.g. ou=Users,dc=mycompany,dc=com"
+ help: "Only users below this base will be used."
projectMember:
role:
member: Member
diff --git a/translations/fa-ir.yaml b/translations/fa-ir.yaml
index 3121b15aed..1b69a643ef 100644
--- a/translations/fa-ir.yaml
+++ b/translations/fa-ir.yaml
@@ -1452,7 +1452,7 @@ machine:
label: حداکثر پهنای باند اینترنت
placeholder: 1 تا 100
storageSection: اطلاعات فضای ذخیره سازی
- isOptimized:
+ ioOptimized:
placeholder: هیچکدام یا بهینه شده
dataDiskSize:
placeholder: اندازه دیسک
diff --git a/translations/fr-fr.yaml b/translations/fr-fr.yaml
index fc586e572b..f8fdddd615 100644
--- a/translations/fr-fr.yaml
+++ b/translations/fr-fr.yaml
@@ -2116,7 +2116,7 @@ machine:
label: Région
accessKeyHelp: "Collez votre paire de clés de AWS ici. Nous utiliserons cette clé pour créer vos nouvelles Instances."
loginAction: 'Suivant : s''Authentifier & sélectionner un réseau'
- loadingAvailability: Chargement des Informations des Zone de disponibilité et des nuages privés virtuels depuis EC2...
+ loadingAvailability: Chargement des Informations des Zones de disponibilité et des nuages privés virtuels depuis EC2...
vpcSection: Zone de Disponibilité & VPC
availabilityZone: Zone de Disponibilité
subnet: Nuage Virtuel Privé/Sous-Réseau
@@ -2286,7 +2286,7 @@ machine:
placeholder: Votre clé secrète Exoscale
provided: Fourni
accountHelp: Collez votre paire de clés de Exoscale ici. Nous utiliserons cette clé pour créer vos nouvelles Instances.
- loginAction: 'Suivant : s''authentifier & sélectionner un groupe de sécurité'
+ loginAction: 'Suivant : s''authentifier & sélectionner une zone'
loadingSecurity: Chargement des informations de groupe de sécurité de Exoscale...
securityGroupSection: Groupe de Sécurité
securityGroup:
@@ -2296,6 +2296,11 @@ machine:
custom: 'Personnalisé : Choisissez un groupe existant'
updating: Mise à jour du Groupe de Sécurité...
creating: Création de Groupe de Sécurité...
+ loadingZone: Chargement des zones de Exoscale...
+ zoneSection: Zone
+ selectZoneAction: 'Suivant : Sélectionner un Groupe de Sécurité'
+ zone:
+ label: Zone
portHelp:
link: Pour en savoir plus
text: À propos des ports qui seront ouverts.
@@ -2314,6 +2319,8 @@ machine:
sshUser:
label: Utilisateur SSH
placeholder: 'utilisateur1'
+ template:
+ label: Template
driverOther:
driverSection: Pilote
driver:
@@ -2440,7 +2447,7 @@ machine:
label: Id de SLB Aliyun
placeholder: Id de SLB Aliyun
storageSection: Infos de stockage
- isOptimized:
+ ioOptimized:
label: Instance de Stockage avec E/S optimisées
placeholder: aucun ou optimisé
systemDiskCategory:
@@ -2700,7 +2707,7 @@ pageFooter:
slack: Slack
download:
link: Télécharger l'Interface de Ligne de Commande (CLI)
- headerCli: Rancher CLI (bêta)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: Mac OS X
windows: Windows
@@ -2802,8 +2809,8 @@ stackSection:
{numServices, plural, =1 {Service} other {Services}}
sidekick: |
{numSidekicks, plural,
- =1 {Sidekick}
- other {Sidekicks}
+ =1 {+ 1 Sidekick}
+ other {+ # Sidekicks}
}
add:
service: Ajouter un Service
diff --git a/translations/hu-hu.yaml b/translations/hu-hu.yaml
index 67dcee024b..52aa2f980d 100644
--- a/translations/hu-hu.yaml
+++ b/translations/hu-hu.yaml
@@ -2029,7 +2029,7 @@ machine:
instanceTag:
label: Példány címke
placeholder: Aliyun példány címkéd
- isOptimized:
+ ioOptimized:
placeholder: none vagy optimized
securitySection: Biztonsági szakasz
securityGroup:
@@ -2180,7 +2180,7 @@ pageFooter:
slack: Slack
download:
link: CLI letöltése
- headerCli: Rancher CLI (béta)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: Mac OS X
windows: Windows
diff --git a/translations/ja-jp.yaml b/translations/ja-jp.yaml
index 41b856b8e4..73af505bd3 100644
--- a/translations/ja-jp.yaml
+++ b/translations/ja-jp.yaml
@@ -39,8 +39,9 @@ generic:
type: タイプ
unknown: 不明
uuid: UUID
- noo: false
- yess: true
+ noo: No
+ yess: Yes
+
accountsPage:
index:
header: アカウント
@@ -70,6 +71,7 @@ accountsPage:
description:
labelText: 詳細情報
placeholder: "例: このアカウントは、ジョン ・ スミス用"
+
apiPage:
header: 環境 API キー
actionButton: 環境 API キーを追加
@@ -95,6 +97,7 @@ apiPage:
paragraph2: "また、アクセス可能な環境に対して作成/削除/操作が行えます。"
table:
noData: "まだあなたのアカウント API キーはありません"
+
auditLogsPage:
header: 監査ログ
form:
@@ -122,6 +125,7 @@ auditLogsPage:
authIp: "認証 & IP"
first: 最初のページ
next: 次のページ
+
authPage:
shibboleth:
header:
@@ -183,7 +187,7 @@ authPage:
providerName:
shibboleth: シボレス
root:
- header: Access Control
+ header: アクセスコントロール
github:
standard: GitHub
enterprise: GitHub エンタープライズ
@@ -236,7 +240,7 @@ authPage:
li2:
text: '"新規アプリケーションの登録" をクリックし、必要事項を入力してください:'
ul:
- li1: '
アプリケーション名: 自由記載, e.g. My {appName} '
+ li1: '
アプリケーション名: 自由記載, 例: My {appName} '
li2: '
ホームページ URL: '
li3: '
アプリケーションの詳細情報: 自由記載(オプション) '
li4: 認証コールバック URL
@@ -334,6 +338,7 @@ authPage:
post: '有効化中...'
0:
header: アクセスコントロール
+
backupTargetsPage:
header: バックアップ対象
linkTo: バックアップ対象を追加
@@ -348,9 +353,11 @@ backupTargetsPage:
mountOptions:
label: NFS マウントオプション
placeholder: '例: nfsvers=4,proto=udp'
+
catalogPage:
index:
header: 'カタログ:'
+ manage: 管理
search:
placeholder: 検索...
category: "カテゴリー:"
@@ -368,9 +375,11 @@ catalogPage:
launch: 詳細を見る
notCompatible: 互換性がありません
alreadyDeployed: 既にデプロイ済みです
+
consolePage:
header: 'シェル:'
closeButton: 閉じる
+
certificatesPage:
table:
cn: ドメイン名
@@ -407,6 +416,7 @@ certificatesPage:
placeholder: '例: mydomain.com'
description:
placeholder: '例: mydomain.com の EV 証明書'
+
containersPage:
table:
ipAddress: IP アドレス
@@ -489,20 +499,24 @@ containersPage:
error: エラー
noData: このコンテナはボリュームを持っていません
noContainers: コンテナはありません
+
containerSubpod:
childContainers: コンテナ
childSidekicks: サイドキック
+
dockerCLI:
header: Swarm CLI
+
failWhalePage:
header: エラー
reloadButton: |
再度試してみるために以下を実施してください
再読み込み または
logoutButton: ログアウト
+
haPage:
header: 高可用性
setup:
- prefix: "ホストの障害時に {{appName}} が稼働し続けるよう複数のサーバーコンテナを異なるホストにデプロイ出来ます。 "
+ prefix: "ホストの障害時に {appName} が稼働し続けるよう複数のサーバーコンテナを異なるホストにデプロイ出来ます。 "
link: ドキュメントを参照してください
suffix: "セットアップと使用方法についてご確認ください。"
table:
@@ -510,6 +524,7 @@ haPage:
port: ポート
heartbeat: 最終通知時刻
clustered: クラスター
+
helpPage:
header: リンク & インフォメーション
banner: アナウンス
@@ -579,6 +594,7 @@ helpPage:
header: 商用サポート
content: |
Rancher Labs では {appName} に関して商用またはエンタープライズレベルのサポートを提供しており、24x7 でのサポートチームの利用や優先バグフィックスなどが含まれます。また、実際の構築や {appName} のスケールに興味のある方向けに構築やインテグレーション、コンサルティングサービスなども提供しています。これらのサービスに関して詳細を知りたい方は我々の営業チームまでご連絡ください。
sales@rancher.com
+
hostsPage:
addContainer: コンテナを追加
index:
@@ -648,6 +664,7 @@ hostsPage:
mounts: マウント
body:
noData: まだこのホストにはボリュームがありません
+
k8sTab:
dashboard:
header: Kubernetes ダッシュ ボード
@@ -671,6 +688,7 @@ k8sTab:
shell:
helpText: |
または以下のシェルから直接
kubectlコマンドを実行します:
+
loginPage:
greeting: "
ようこそ {appName} へ!"
githubMessage: "{appName} はアカウントやチームの管理に GitHub を利用しています。 ログインしてあなたの GitHub アカウント情報に読み込み権限でアクセスするために以下のボタンを押して下さい。"
@@ -682,6 +700,7 @@ loginPage:
error:
authFailed: ユーザーネームまたはパスワードが正しくありません。
timedOut: セッションがタイムアウトしました。 続けるには再度ログインをしてください。
+
machinePage:
header: マシンドライバー
inactive: 休止
@@ -702,6 +721,7 @@ machinePage:
uiUrl: UI URL
checksum: チェックサム
noData: マシンドライバーはありません
+
mesosPage:
header: 概要
actionLink: Mesos UI を開く
@@ -721,9 +741,11 @@ mesosPage:
header: 管理
content: Mesos UI から Mesos を管理します。
button: Mesos UI
+
notFoundPage:
header: "お探しのページは存在しません!"
linkTo: ホームに戻る
+
projectList:
index:
header: 環境
@@ -749,6 +771,7 @@ projectList:
isPublic: パブリック
body:
noData: "まだ環境のテンプレートはありません"
+
registriesPage:
index:
header: レジストリ
@@ -767,19 +790,25 @@ registriesPage:
form:
custom:
labelText: アドレス
+ placeholder: '例: registry.example.com'
help: 'プロトコル (https://) を含まないホスト名または IP アドレス'
email:
labelText: Email
+ placeholder: '例: you@example.com'
username:
labelText: ユーザー名
+ placeholder: '例: username'
password:
labelText: パスワード
+ placeholder: '例: password'
+
secretsPage:
index:
header: シークレット
linkTo: シークレットを追加
noData: まだシークレットはありません
noMatch: 検索条件に一致するシークレットがありません
+
servicePage:
header: 'サービス:'
multistat:
@@ -848,8 +877,10 @@ servicePage:
composeservice: 構成サービス
networkdriverservice: ネットワークサービス
storagedriverservice: ストレージサービス
+
settingsPage:
header: 設定
+
stacksPage:
header:
all: 全てのスタック
@@ -872,6 +903,10 @@ stacksPage:
header: スタックを追加
composeLabel: 'オプション: Compose をインポート'
form:
+ name:
+ placeholder: '例: myapp'
+ description:
+ placeholder: '例: MyApp Stack'
dockerCompose:
label: 'オプション: docker-compose.yml'
placeholder: docker-compose.yml の内容
@@ -880,6 +915,7 @@ stacksPage:
placeholder: rancher-compose.yml の内容
startOnCreate:
label: 作成後にサービスを開始
+
storagePoolsPage:
header: ストレージドライバー
volume: ボリューム ID
@@ -894,6 +930,7 @@ storagePoolsPage:
form:
driverOptions: ドライバーオプション
addActionLabel: オプションを追加
+
swarmPage:
projects:
index:
@@ -929,6 +966,7 @@ swarmPage:
containers: コンテナ
body:
noData: まだサービスはありません
+
processesPage:
header: プロセス
tab:
@@ -964,6 +1002,7 @@ processesPage:
runAfter: 実開始時間
noData: '{which} のプロセスはありません'
noMatch: 検索条件に一致するプロセスがありません
+
virtualMachinePage:
header: '仮想マシン:'
multistat:
@@ -974,12 +1013,14 @@ virtualMachinePage:
description: '詳細情報:'
navTabs:
labels: ラベル
+
virtualMachinesPage:
header: 仮想マシン
linkTo: 仮想マシンを追加
table:
body:
noData: まだ仮想マシンはありません
+
waitingPage:
hosts:
header: |
@@ -999,6 +1040,7 @@ waitingPage:
mesos: Mesos をセットアップ
swarm: Swarm をセットアップ
kubernetes: Kubernetes をセットアップ
+
aliasServicePartial:
serviceLinks:
labelText: サービスリンク
@@ -1006,6 +1048,7 @@ aliasServicePartial:
links: リンク
noLinks: リンクはありません
description: '詳細情報:'
+
externalServicePartial:
extService:
labelText: 外部サービス
@@ -1013,17 +1056,21 @@ externalServicePartial:
ips: IP
hostname: 'ホスト名:'
description: '詳細情報:'
+
hostPartial:
host:
addCommon:
quanity: 数
addOptions:
labels: ラベル
+
ldap:
providerName:
openldap: OpenLDAP
ad: Active Directory
header:
+ editing:
+ label: Active Directory 設定を編集
enabled:
label: "{providerName} は有効化されていません"
required: |
@@ -1060,6 +1107,7 @@ ldap:
serviceAccount: "サービスアカウント:"
searchBase: "サーチベース:"
defaultDomain: "デフォルトドメイン:"
+ timeout: "コネクションタイムアウト:"
users:
header: ユーザー
objectClass: "オブジェクトクラス:"
@@ -1080,11 +1128,17 @@ ldap:
pre: アクセスコントロールを無効化
post: "本当によろしいですか? アクセスコントロールを無効化する場合は再度クリックしてください"
accessConfig:
- header: "1. {providerName} サーバーを設定"
+ header: "{providerName} サーバーを設定"
subtext1: "あなたの {providerName} サーバーに接続するため、アドレス、ポート、プロトコルを入力してください。通常は
389 番ポートが利用され、
636はTLSに利用されます。"
subtext2: "{appName} はユーザーがどのグループに所属しているか、いつ API キーでリクエストを発行したかなどを特定し、ログイン処理を実行するために全てのドメインに対して (read-only) アクセスが可能なサービスアカウントを必要とします。"
+ advanced:
+ open: 拡張設定を隠す
+ closed: 拡張設定を表示する
hostName:
labelText: ホスト名または IP アドレス
+ timeout:
+ labelText: コネクションタイムアウト
+ unit: ms
port:
labelText: ポート
checkbox: TLS
@@ -1092,14 +1146,20 @@ ldap:
labelText: サービスアカウント ユーザー名
servicePassword:
labelText: サービスアカウント パスワード
- searchBase:
- helpText: "ベース配下のユーザー、グループのみ利用されます"
- labelText: サーチベース
+ userSearchBase:
+ labelText: ユーザーサーチベース
+ placeholder: "例: ou=Users,dc=mycompany,dc=com"
+ helpText: "ベース配下のユーザーのみ利用されます"
+ groupSearchBase:
+ labelText: グループサーチベース
+ placeholder: "例: ou=Groups,dc=mycompany,dc=com"
+ helpText: "ベース配下のグループのみ利用されます"
defaultDomain:
helpText: "一部を除き、ユーザーがログインする際このドメインが使用されます。"
labelText: デフォルト ログインドメイン
+ placeholder: "例: mycompany"
customizeSchema:
- header: "2. スキーマのカスタマイズ"
+ header: "スキーマのカスタマイズ"
helpText: "スキーマが標準的な ActiveDirectory フォーマットに一致しない場合、こちらでカスタマイズすることができます。"
users:
header: ユーザー
@@ -1134,7 +1194,8 @@ ldap:
labelText: グループ DN フィールド
placeholder: 識別名
testAuth:
- header: "3. テストのうえ認証を有効化する"
+ header: "テストのうえ認証を有効化する"
+ editingHeader: "テストのうえ新しい設定を保存します"
helpText: "あなたの {providerName} アカウントで認証テストを行うことで全てが正常に設定されたことを確認します:"
userName:
labelText: ユーザー名
@@ -1143,11 +1204,14 @@ ldap:
authenticate:
pre: 認証
post: "テスト中..."
+ test: テストの上保存
+
servicePartial:
noContainers:
label: まだコンテナはありません
inactive:
start: 開始
+
serviceInfoPartial:
info:
label: 情報
@@ -1165,8 +1229,10 @@ serviceInfoPartial:
links: リンク
noLinks: リンクはありません
fqdn: 'FQDN:'
+
advancedSection:
hrText: 拡張オプション
+
catalogSettings:
header: カタログ
subtext: カタログはユーザーが少ない質問に回答するだけで簡単にアプリケーションをデプロイするための rancher-compose のテンプレートを含みます
@@ -1192,15 +1258,21 @@ catalogSettings:
label: 名前
url:
label: URL
+ kind:
+ label: 種類
+ native: ネイティブ
+ helm: Helm
branch:
label: ブランチ
placeholder: '例: master'
+
confirmDelete:
title: '本当に削除してもよろしいですか?'
environmentNote: 'Note: {appName} によって作成されたホストなどこの環境内の全てのリソースは完全に削除されます。'
protip: 'ProTip: この確認画面を飛ばす場合は削除ボタンのクリック時に {key} キーを長押ししてください。'
confirmAction: 削除
cancelAction: キャンセル
+
containerLogs:
title: 'ログ: {instanceName}'
onlyCombined: "
Note: このコンテナでは TTY (-t) フラグが有効なため、標準出力/標準エラー出力が結合されたログのみが利用可能です。"
@@ -1217,6 +1289,7 @@ containerLogs:
connected: 接続完了
disconnected: 切断
closed: 閉じる
+
containerShell:
protip: 'ProTip: 新しいウィンドウで起動する場合はシェルアクセスを開く際に {key} を長押ししてください。'
status:
@@ -1226,30 +1299,36 @@ containerShell:
connected: 接続完了
disconnected: 切断
closed: 閉じる
+
copyToClipboard:
tooltip: クリップボードにコピー
copied: コピーしました!
+
dangerZone:
header: 拡張設定
subtext: "注意して進めてください; 通常、ユーザーはこの設定を変更する必要はありません。間違った値を入力すると {appName} のインストレーションに問題が生じることがあります。変更のあった部分は太字で表示されます。"
showLabel: 私は拡張設定を変更することで問題が生じる可能性があると理解しています。
+
devicePermissions:
all: 全て
none: None
read: 読み込み
write: 書き込み
mknod: Mknod
+
editAccount:
title: アカウントを編集
form:
name:
label: 名前
+ placeholder: '例: John Smith'
kind:
label: アカウントタイプ
user: ユーザー
admin: 管理者
description:
label: 詳細情報
+ placeholder: '例: このアカウントは John Smith 向けアカウントです'
publicValue:
label: ログイン ユーザー名
oldPassword:
@@ -1260,8 +1339,10 @@ editAccount:
label: 新しいパスワード(確認用)
identity:
label: ID
+
editAliasService:
title: サービスのエイリアスを編集
+
editApiKey:
title:
justCreated: API Key は作成されました
@@ -1272,10 +1353,11 @@ editApiKey:
secretValue:
label: 秘密キー (パスワード)
description:
- placeholder: e.g. このキーはアプリケーションサーバーでコンテナをデプロイするのに使われます
+ placeholder: "例: このキーはアプリケーションサーバーでコンテナをデプロイするのに使われます"
saveWarning1: 上記のキーを保存してください! 以降、秘密キーは参照できません。
saveWarning2: もしキーを無くしてしまった場合、新しい API キーを作成する必要があります。
noteOptional: 名前と詳細情報は何のために利用されるかを示すためのオプションです。 作成をクリックすることで単純に作成することもできます。
+
editBalancerService:
title: ロードバランサーを編集
haproxy:
@@ -1289,17 +1371,27 @@ editBalancerService:
defaults:
label: '
defaults セクション'
prompt: カスタム defaults セクション行
+
editCertificate:
title: 証明書を編集
+ name:
+ placeholder: '例: mydomain.com'
+ description:
+ placeholder: '例: mydomain.com の EV 証明書'
noteKeyWriteOnly: 'Note: プライベートキーは書き込み専用のためあえて空にしています。証明書を更新するには変更が無かったとしても再度プライベートキーを入力する必要があります。'
+
editContainer:
title:
vm: VM を編集
container: コンテナを編集
+
editExternalService:
title: 外部サービスを編集
name:
- placeholder: 例えば外部の db
+ placeholder: '例: external-db'
+ description:
+ placeholder: '例: 外部の物理 DB サーバー'
+
editHost:
title: ホストを編集
hostname:
@@ -1317,6 +1409,11 @@ editHost:
valueLabel: IP アドレス
addActionLabel: IP アドレスを追加
help: 入力された場合、スケジューラが与えられたパブリック IP アドレス群から対象を選択し公開ポートをバインドします。
+ requireAny:
+ label: 必要となるコンテナラベル
+ help: 指定した場合、このホストに適切にスケジューリングされるようコンテナは1つまたは複数のラベルを設定する必要があります。値を空のままにした場合一致するキーの有無に関わらずコンテナはスケジュールされます。システムコンテナをこのホストにスケジューリングするには
io.rancher.container.system が必要となります。
+ addActionLabel: 必要となるラベルを追加
+
editProjectTemplate:
title:
add: テンプレートを追加
@@ -1332,6 +1429,7 @@ editProjectTemplate:
conflict: 競合
enabling: "選択されたバージョンの {tplCategory} スタック \"{stackName}\" は {orchestration} オーケストレーションをサポートしていません。"
changing: "現在有効な {tplCategory} スタック \"{stackName}\" は {orchestration} オーケストレーションをサポートしていません。"
+
editRegistry:
title: レジストリを編集
address:
@@ -1342,17 +1440,28 @@ editRegistry:
label: ユーザー名
password:
label: パスワード
+
editService:
title: サービスを編集
+
editStack:
title: スタックを編集
name:
label: 名前
+ placeholder: '例: myapp'
description:
label: 詳細情報
+ placeholder: '例: MyApp Stack'
group:
label: タグ
+ placeholder: '例: frontend, production'
help: スタックのリストはタグ(カンマ区切り) によりフィルターできます
+
+envCatalog:
+ header: カタログを管理
+ subtext: ここから独自のカスタムされたカタログソースを定義できます。ここから追加されたカタログは対象の環境下でのみ利用できます。各カタログはユニークな名前と
git clone 可能な URL が必要となります。(詳細は
docs を参照してください)。
+ addActionLabel: カタログを追加
+
stackHeader:
backLink: "スタック:"
outputs: 出力
@@ -1362,9 +1471,11 @@ stackHeader:
external: 外部サービスを追加
alias: サービスのエイリアスを追加
vm: 仮想マシンを追加
+
formatIp:
noIp: None
unknownIp: 不明
+
formBalancerRules:
label: ポートルール
noRules: ルールはありません
@@ -1384,12 +1495,16 @@ formBalancerRules:
placeholder: '例: 80'
path:
label: パス
+ placeholder: '例: /foo'
hostname:
label: リクエストホスト
+ placeholder: '例: example.com'
backendName:
label: バックエンド
+ placeholder: '例: webapp'
targetPort:
label: ポート
+ placeholder: '例: 80'
priority:
label: 優先度
moveUp: 上に移動
@@ -1398,19 +1513,25 @@ formBalancerRules:
label: サービス
selector:
label: セレクタ
+ placeholder: '例: foo=bar'
help:
prefix: "ホストとパスルールは上位から下位への順番でマッチングが評価されます。バックエンドはデフォルトでランダム名が利用され、生成されるバックエンドをカスタマイズするには名前を入力しカスタマイズされた haproxy.cfg を参照してください。"
showBackendLink: "カスタムバックエンド名を見る"
showIpLink: "ホストの IP アドレスのオプションを表示します。"
+
formCommand:
command:
label: コマンド
+ placeholder: '例: /usr/sbin/httpd -f httpd.conf'
entryPoint:
label: エントリーポイント
+ placeholder: '例: /bin/sh'
workingDir:
label: ワーキングディレクトリ
+ placeholder: '例: /myapp'
user:
label: ユーザー
+ placeholder: '例: apche'
console:
label: コンソール
both: 'インタラクティブ & TTY
(-i -t) '
@@ -1435,6 +1556,7 @@ formCommand:
addAction: 環境変数を追加
keyLabel: 変数
valueLabel: 値
+
formContainerLinks:
label: リンク
addActionLabel: リンクを追加
@@ -1445,6 +1567,7 @@ formContainerLinks:
prompt: コンテナを選択してください...
name:
label: リンク名
+
formDisks:
addDiskLabel: ディスクを追加
addRootDiskLabel: ルートディスクを追加
@@ -1460,6 +1583,7 @@ formDisks:
label: 書き込み IOPS
driver:
label: ドライバー
+
formEngineOpts:
engineInstallUrl:
label: Docker インストール URL
@@ -1486,6 +1610,7 @@ formEngineOpts:
label: レジストリミラー
addActionLabel: レジストリミラーを追加
valueLabel: ミラー URL
+
formHealthCheck:
label: タイプ
checkType:
@@ -1497,7 +1622,7 @@ formHealthCheck:
method:
prompt: "HTTP メソッドを選択:"
path:
- placeholder: リクエストパス e.g. /healthcheck
+ placeholder: 'リクエストパス 例: /healthcheck'
version:
prompt: "HTTP バージョンを選択:"
host:
@@ -1532,6 +1657,7 @@ formHealthCheck:
=1 {コンテナは}
other {コンテナは}
} 正常です
+
formKeyValue:
addAction: ペアを追加
key:
@@ -1542,12 +1668,17 @@ formKeyValue:
label: 値
placeholder: 値
protip: 'ProTip: 簡単に入力するには1行以上の key=value ペアをペーストしてください。'
+
formImage:
label: イメージを選択
vm:
+ placeholder: '例: rancher/vm-ubuntu'
dropdownLabel: "{appName} イメージ"
+ container:
+ placeholder: '例: ubuntu:trusty'
pullImage:
label: 常に作成前にイメージを取得する
+
formNameDescription:
name:
label: 名前
@@ -1555,6 +1686,7 @@ formNameDescription:
description:
label: 詳細情報
placeholder: 詳細情報
+
formNetwork:
links:
table:
@@ -1576,6 +1708,7 @@ formNetwork:
label: コンテナ
requestedIp:
label: リクエストされた IP
+ placeholder: '例: 10.42.2.24'
help: 10.42.0.0/16 ブロックから特定の IP を指定します。既に利用されている場合ランダムな IP が割り当てられます。
retainIp:
label: 保有 IP
@@ -1585,25 +1718,33 @@ formNetwork:
enable: '{appName} DNS サービスディスカバリを有効化する'
hostname:
label: ホスト名
+ placeholder: '例: web'
dockerId: Docker コンテナ ID を使う
containerName: コンテナ名を使う
custom: 特定のホスト名を設定
domainName:
label: ドメイン名
+ placeholder: '例: example.com'
resolvingServers:
label: DNS サーバー
addActionLabel: サーバーを追加
+ placeholder: '例: 8.8.4.4'
searchDomains:
label: サーチドメイン
+ placeholder: '例: prod.example.com'
addActionLabel: ドメインを追加
+
formPorts:
addAction: ポートマップ
bindAddress:
label: パブリックホスト IP (オプション)
+ placeholder: '例: 1.2.3.4; デフォルト: any'
public:
label: パブリックホスト ポート
+ placeholder: '例: 80'
private:
label: プライベートコンテナポート
+ placeholder: '例: 8080'
protocol:
label: プロトコル
noPorts: このコンテナにはポートマップがありません
@@ -1613,6 +1754,7 @@ formPorts:
mixedIpPort: "ポート {ip}:{port}/{proto} は、1 つ以上のマッピングを保持しています。"
mixedPort: "ポート {port}/{proto} は、1 つ以上のマッピングを保持しています。"
showIpLink: ホストの IP アドレスフィールドを表示
+
formScale:
label: スケール
global:
@@ -1631,10 +1773,11 @@ formScale:
=1 {1 コンテナ}
other {# コンテナ}
} として起動
+
formScheduling:
canRequestHost:
vm:
全て の仮想マシンを特定ホスト上で起動する
- containers:
all のコンテナを特定ホスト上で起動する
+ containers:
全て のコンテナを特定ホスト上で起動する
runSpecific: 特定のホスト上で起動
noRules: スケジューリングルールはありません
autoRun: "スケジューリングルールにマッチした全てのホスト上で自動的に起動:"
@@ -1647,10 +1790,14 @@ formScheduling:
field: フィールド
key: キー
value: 値
+
formSecrets:
label: シークレット
noData: シークレットはありません
addLabel: シークレットを追加
+ name:
+ label: 名前
+ placeholder: '例: db_password'
secret:
label: シークレット
uid:
@@ -1662,11 +1809,14 @@ formSecrets:
help:
prefix: "シークレットはコンテナの
/run/secrets/ 内にある指定されたファイル名で利用できます。"
showPermissionsLink: "ファイルの所有権 & 権限のカスタマイズ"
+
formSecurity:
key: キー
value: 値
logConfig:
addActionLabel: オプションを追加
+ keyPlaceholder: '例: syslog-facility'
+ valuePlaceholder: '例: daemon'
privileged:
label: 特権モード
checkbox: ホストへのフルアクセスを許可する
@@ -1684,6 +1834,7 @@ formSecurity:
placeholder2: 無制限
cpuPinning:
label: CPU ピンニング
+ placeholder: '例: 0,3; デフォルト: All'
shares:
label: 共有
placeholder: '例: 1024'
@@ -1699,10 +1850,13 @@ formSecurity:
addActionLabel: バインディングを追加
pathHost:
label: ホスト上のパス
+ placeholder: '例: /dev/sdc'
pathContainer:
label: コンテナ上のパス
+ placeholder: '例: /dev/xsdc'
permissions:
label: 権限
+ placeholder: '例: 0,3; デフォルト: All'
logDriver:
label: ログドライバー
placeholder: '例: syslog'
@@ -1716,6 +1870,7 @@ formSecurity:
label: 分離
default: デフォルト(コンテナ)
hyperv: HyperV (VM)
+
formServiceLinks:
addAction: サービスリンク
noServices: リンクする他のサービスはありません。
@@ -1724,6 +1879,8 @@ formServiceLinks:
label: 対象サービス
name:
label: 名前
+ placeholder: '例: database'
+
formSslTermination:
defaultCertificate:
prompt: 証明書を選択してください...
@@ -1737,6 +1894,7 @@ formSslTermination:
helpBlock: |
"Note: いくつかの古い SSL/TLS クライアントは
Server Name Indication (SNI) をサポートされていません; これらのクライアントでは常にメイン証明書の提示を求められますが比較的新しいクライアントは一致するものが見つかると代替証明書のリストから適切な証明書を求めてきます。"
notNeeded: SSL/TLS ポートは設定されていません
+
formStickiness:
stickiness: スティッキー
none: None
@@ -1749,11 +1907,13 @@ formStickiness:
sendHeader: no-cache ヘッダーを送信
onPost: POST にのみ cookie を設定
noPorts: HTTP ポートルールは設定されていません
+
formTarget:
target: 対象
pointAddress: IP アドレスを指定
pointHostname: ホスト名を指定
addTarget: 対象 IP を追加
+
formTargets:
title: 対象
addAction: サービスを追加
@@ -1777,17 +1937,22 @@ formTargets:
一致したリクエストは対象サービスの対象ポートに対して送信されます。
設定されていない場合、デフォルトの対象ポートが元ポートに使用されます。それも設定されていない場合は元ポートが使用されます。
noHostnames: "(ホスト名でバランシングできません)"
+
formUserData:
- placeholder: "e.g. コンテナ用設定情報"
- isVmPlaceholder: "e.g. 仮想マシン用設定情報"
+ placeholder: "例: コンテナ用設定情報"
+ isVmPlaceholder: "例: 仮想マシン用設定情報"
+
formUserLabels:
addAction: ラベルを追加
key:
label: キー
+ placeholder: '例: foo'
separator: "="
value:
label: 値
+ placeholder: '例: bar'
protip: 'ProTip: 簡単に入力するには1行以上の key=value ペアをペースト>してください。'
+
formUpgrade:
size: バッチサイズ
interval: バッチ間隔
@@ -1795,14 +1960,17 @@ formUpgrade:
behavior: 開始の挙動
startStop: 停止前に起動
whichServices: サービス
+
formValueArray:
addActionLabel: 値を追加
valueLabel: 値
valuePlacholder: 値
protip: 'ProTip: 簡単に入力するには1行以上の値をペーストしてください。'
+
formVirtualMachines:
vcpus: vCPUs
memory: メモリ
+
formVolumes:
value:
prompt: コンテナを選択してください...
@@ -1810,12 +1978,14 @@ formVolumes:
volumesFrom: 他コンテナのボリューム
volumeDriver:
label: ボリュームドライバー
+ placeholder: '例: rancher-nfs'
noLaunchConfigs: このサービスにはボリュームを共有するための起動設定がありません。
noHostContainers: このホストには他コンテナのボリュームを利用するためのコンテナがありません。
onlySingleHost: 特定ホストにコンテナを追加した場合のみ利用できます
addActionLabel: ボリュームを追加
errors:
invalidName: ボリューム名は、文字、数字、ハイフン、アンダー スコア、およびドットのみ含めることができます。
+
heroAddService:
infra:
header: インフラストラクチャ スタックを追加
@@ -1830,17 +2000,24 @@ heroAddService:
addService: サービスを定義する
addCatalog: 設定
linkToCatalog: カタログを参照
+
hookPage:
+ receiver:
+ header: レシーバー フック
+ buttonText: レシーバーを追加
+ content: "レシーバー フックでは、{appName} の内部アクションをトリガーするための URL が提供されます。"
+ noData: レシーバー フックはありません
scaleService:
label: サービスを拡張
detailPrefix: "{action} を拡張"
detailLink: "{displayService}"
detailSuffix: "by {amount}"
- receiver:
- header: レシーバー フック
- buttonText: レシーバーを追加
- content: "レシーバー フックでは、{appName} の内部アクションをトリガーするための URL が提供されます。"
- noData: レシーバーフックはありません
+ scaleHost:
+ label: ホスト数を拡張
+ detail: "Matching {labels} {action} by {amount}"
+ serviceUpgrade:
+ label: サービスをアップグレード
+ detail: "Matching {labels} when
{tag} changes"
fields:
kind:
label: 種類
@@ -1848,6 +2025,7 @@ hookPage:
label: 詳細
url:
label: トリガー URL
+
hostSettings:
header: ホスト登録 URL
subtext: '{appName} API に接続するための URL は何にしますか?'
@@ -1866,6 +2044,7 @@ hostSettings:
badTld:
alert: |
トップレベルドメインである
.local はRFC6742 でマルチキャスト DNS 向けに予約されています。そのため登録 URL に利用することは推奨されず、利用した場合 DNS 上の問題が発生する可能性があります。他のホスト名または IP を指定してください。
+
hostPod:
supportState:
unsupported: サポートされていない Docker バージョン
@@ -1874,8 +2053,10 @@ hostPod:
namespace: '名前空間:'
stack: 'スタック:'
standalone: 独立型コンテナ
+
identityBlock:
loading: 読込中...
+
infoMultiStats:
connecting: 接続中...
utilizationStats: 利用率の統計はアクティブ/起動中の場合のみ利用できます。
@@ -1894,6 +2075,7 @@ infoMultiStats:
labelText: ストレージ
read: 読み込み
write: 書き込み
+
inputCertificate:
key:
label: プライベートキー
@@ -1907,6 +2089,7 @@ inputCertificate:
metaXML:
label: メタデータ XML
placeholder: "IDP メタデータ XML でペースト"
+
inputIdentity:
placeholder:
github: GitHub ユーザーまたは組織名を追加
@@ -1914,10 +2097,13 @@ inputIdentity:
dropdownLabel:
teams: あなたのチームと組織
groups: あなたのグループ
+
inputPassword:
buttonText: 生成
+
inputTextFile:
tooltip: ファイルから読み込む
+
k8s:
containerSection:
name: コンテナ名
@@ -1987,6 +2173,7 @@ k8s:
nodePorts: ノードポート
selectors: セレクター
noData: サービスはありません
+
lbAddtlInfo:
info: 情報
viewDetails: 詳細を見る
@@ -2000,20 +2187,25 @@ lbAddtlInfo:
ports: ポート
noPorts: パブリックホストのポートはありません
targets: ターゲット
+
labelsSection:
kind: 種類
key: キー
value: 値
noData: ラベルはありません
+
loginShibboleth:
buttonText: シボレスで認証
+
loginGithub:
buttonText: GitHub で認証
+
loginUserPass:
userLabel: ユーザー名
loginLabel: ログイン
loggingInLabel: ログイン中...
passwordLabel: パスワード
+
machine:
driverAmazon:
accessSection: アカウントアクセス
@@ -2118,7 +2310,7 @@ machine:
placeholder: 可用性セット名
openPort:
label: 解放するポート
- placeholder: 'カンマ区切り, e.g. 80,443'
+ placeholder: 'カンマ区切り, 例: 80,443'
privateIpAddress:
label: プライベート IP
placeholder: 127.0.0.1
@@ -2346,7 +2538,7 @@ machine:
label: Aliyun SLB ID
placeholder: Aliyun SLB ID
storageSection: ストレージ情報
- isOptimized:
+ ioOptimized:
label: インスタンスストレージ I/O の最適化
placeholder: none or optimized
systemDiskCategory:
@@ -2385,6 +2577,7 @@ machine:
sshPassword:
label: SSH のパスワード
placeholder: インスタンスの SSH パスワードを設定してください。自動設定するには空白を指定してください。
+
modalAboutComponent:
component: コンポーネント
version: バージョン
@@ -2394,10 +2587,12 @@ modalAboutComponent:
compose: Compose
machineService: Machine Service
close: 閉じる
+
modalAuditlogInfo:
header: 追加のログ情報
request: "リクエストオブジェクト:"
response: "レスポンスオブジェクト:"
+
modalContainerStop:
uom: 秒
header: "本当に停止してもよろしいですか?"
@@ -2406,6 +2601,7 @@ modalContainerStop:
label: タイムアウト
placeholder: '10'
button: 停止
+
modalConfirmDeactivate:
header: 本当にこの処理を行ってよろしいですか?
protip: 'ProTip: この確認画面を飛ばす場合は {isServiceButton} クリック時に {key} キーを長押ししてください。'
@@ -2420,12 +2616,14 @@ modalConfirmDeactivate:
default:
message: 非アクティブ化
button: 非アクティブ化
+
modalEditBackup:
edit: バックアップを編集
create: バックアップを作成
nameLabel: バックアップ名
backupTarget: バックアップ対象
backupTargetPlaceholder: 'バックアップ対象を選択してください...'
+
modalEditDriver:
header:
create: マシンドライバーを追加
@@ -2440,6 +2638,7 @@ modalEditDriver:
checksum:
label: チェックサム
help: 'オプション: 期待されたチェックサムかどうかダウンロードされたマシンドライバーの整合性を確認します。'
+
modalEditSetting:
title: 拡張設定を編集
name:
@@ -2448,30 +2647,38 @@ modalEditSetting:
label: 値
reset:
label: ディフォルトにリセット
+
modalEditSnapshot:
edit: スナップショットを編集
create: スナップショットを作成
nameLabel: スナップショット名
+
modalFeedback:
header: '{appName} へようこそ!'
subtitle: "開始する前にあなたのことについて少し教えてください..."
send: はじめに
+
modalProcessError:
header: 例外情報
cause: "理由:"
stackTrace: "スタックトレース:"
close: 閉じる
+
modalRollbackVolume:
title:
snapshot: スナップショットへのロールバック
backup: バックアップへのロールバック
+
modalShell:
title: 'シェル: {instanceName}'
+
modalWelcome:
header: '{appName} へようこそ!'
closeModal: 完了!
+
newAliasService:
header: サービスのエイリアスを追加
+
newBalancer:
header:
add: ロードバランサーを追加
@@ -2495,6 +2702,7 @@ newBalancer:
mixedPort: "ポート {num} はアクセスするプロトコルが競合する複数のルールを持っています"
noTarget: "各ルールには対象が必要です"
needsCertificate: "SSL/TLS ポートルールであるため証明書が必要です"
+
newCatalog:
version:
prompt: バージョンを選択してください...
@@ -2524,6 +2732,7 @@ newCatalog:
preview: プレビュー
txt: answers.txt
noConfig: このテンプレートには設定オプションがありません
+
newContainer:
add:
container: コンテナを追加
@@ -2557,36 +2766,76 @@ newContainer:
saveUpgrade: アップグレード
saveNew: 作成
removeSidekick: このサイドキックを削除
+ name:
+ placeholder: "例: myapp"
+ description:
+ placeholder: "例: My Application"
emptyPrimaryService: "(基本サービス)"
emptySidekick: "(サイドキック #{num})"
addSidekickContainer: サイドキックコンテナを追加
addSidekickVm: サイドキック VM を追加
+
newExternalService:
header: 外部サービスを追加
alert: 'Note: 外部サービスがロードバランサーのターゲットである場合にのみ利用されます。'
+
newReceiver:
title:
edit: レシーバーを編集
add: レシーバーを追加
+ name:
+ placeholder: '例: scale-web'
driver:
label: 種類
action:
label: アクション
+ up: スケールアップ
+ down: スケールダウン
+ batchSize:
+ label: アップグレード バッチサイズ
+ deleteOption:
+ label: どのホストをスケールダウン, 削除するか
+ mostRecent: 直近で作成されたホスト
+ leastRecent: 最も古いホスト
+ hostSelector:
+ label: ホストセレクター
+ addActionLabel: セレクターラベルを追加
+ help:
+ up: 指定したラベルに一致したホストが新しく展開されるホストのテンプレートとして利用されます
+ down: 指定したラベルに一致したホストがスケールダウン時に削除される候補になります
+ image:
+ label: Docker イメージ名
service:
label: 対象サービス
+ serviceSelector:
+ label: サービスセレクター
+ addActionLabel: セレクターラベルを追加
+ help: 指定したラベルに一致したサービスがアップグレードされます
amount:
- label: Scale up/down 単位
+ label: スケールアップ/ダウン 単位
min:
label: 最小スケール
+ placeholder: '例: 1'
max:
label: 最大スケール
+ placeholder: '例: 20'
+ tag:
+ label: イメージタグ
+ placeholder: '例: latest'
+ help: 指定したタグでレジストリにプシュされた場合にサービスはアップグレードされます
+
newSecret:
title:
edit: シークレットを編集
add: シークレットを追加
+ name:
+ placeholder: '例: api-token'
+ description:
+ placeholder: '例: API 用シークレットトークン'
value:
label: シークレットの値
placeholder: シークレットの値
+
pageFooter:
notARelease: (未リリース)
help: ヘルプ
@@ -2597,33 +2846,39 @@ pageFooter:
slack: Slack
download:
link: CLI をダウンロード
- headerCli: Rancher CLI (beta)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: Mac OS X
windows: Windows
linux: Linux
+
pagination:
multi: |
{pages, plural,
=0 {0 項目}
=1 {{count} {count, select, =1 {項目} other {項目}}}
other {{from} - {to} of {count}}}
+
pageHeaderEnvironment:
namespace: 名前空間
+
projectRow:
none: 詳細情報はありません
orchestration: オーケストレーション
+
projectUpgrade:
header: 環境をアップグレード
detail: "{appName} {appVersion} には、既存のシステムサービスやロードバランサーコンテナをアップグレードする必要がある変更が含まれています。"
notOwner: "この環境のオーナーまたは管理者だけがアップグレードを実行できます。"
actionButton: 今すぐアップグレード
banner: 環境をアップグレード中...
+
registryRow:
address: アドレス
email: Email
username: ユーザー名
created: 作成日
+
reservationParameters:
label: リソース制限
localStorage:
@@ -2635,12 +2890,14 @@ reservationParameters:
milliCpu:
labelText: CPU
unit: 'mCPU'
+
saveCancel:
saving: 保存中...
saved: 完了!
edit: 保存
create: 作成
cancel: キャンセル
+
schema:
inputBoolean:
"y": "はい"
@@ -2653,6 +2910,7 @@ schema:
prompt: サービスを選択してください...
inputSecret:
prompt: シークレットを選択してください...
+
schedulingRuleRow:
theHost: ホスト
must: must
@@ -2665,6 +2923,7 @@ schedulingRuleRow:
containerLabel: ラベル付きコンテナ
serviceName: 名前付きサービス
containerName: 名前付きコンテナ
+
serviceLink:
withAlias:
sameStack: "{service} を {alias} とする"
@@ -2672,6 +2931,7 @@ serviceLink:
noAlias:
sameStack: "{service}"
differentStack: "{stack}/{service}"
+
sidekickAddtlInfo:
info: 情報
image: イメージ
@@ -2681,6 +2941,7 @@ sidekickAddtlInfo:
noContainers: コンテナはありません
labels: ラベル
noLabels: ラベルはありません
+
siteAccess:
header: サイトアクセス
helpText: "誰がログインし {appName} を利用できるか設定してください"
@@ -2692,8 +2953,10 @@ siteAccess:
users: ユーザー
groups: グループ
organizations: 組織
+
snapshotTimeline:
noData: スナップショットデータはありません
+
stackSection:
outputs: 出力
description: 詳細情報
@@ -2711,8 +2974,8 @@ stackSection:
}
sidekick: |
{numSidekicks, plural,
- =1 {サイドキック}
- other {サイドキック}
+ =1 {+ 1 サイドキック}
+ other {+ # サイドキック}
}
add:
service: サービスを追加
@@ -2729,9 +2992,11 @@ stackSection:
containers: コンテナ
actions: アクション
upgradeImage: コンテナイメージをアップグレード
+
snapshotSection:
none: バックアップされていません
multiple: '複数: {latestDate}'
+
storagePoolSection:
outputs: 出力
readOnly: "(read-only)"
@@ -2750,8 +3015,10 @@ storagePoolSection:
snapshotName: 'スナップショット名'
backedUp: 'バックアップ済み'
mounts: 'マウント(コンテナ:パス)'
+
svgServiceContainer:
sidekicks: サイドキック
+
swarm:
containerSection:
state: 状態
@@ -2764,6 +3031,7 @@ swarm:
ports: ポート
containers: コンテナ
none: サービスはありません
+
telemetryOpt:
header: 統計情報
subtext: |
@@ -2771,13 +3039,16 @@ telemetryOpt:
learnMore:
label: 詳細を見る
label: 匿名の統計情報の収集を許可する
+
tooltipLink:
list: リスト
linkGraph: リンクグラフ
composeYaml: Compose YAML
+
tooltipWarning:
notConfigured: アクセスコントロールは設定されていません
dismiss: 表示しない
+
upgradeBtn:
version:
current: '現行'
@@ -2791,10 +3062,12 @@ upgradeBtn:
notfound: 'テンプレートバージョンが見つかりません'
error: 'アップグレードのチェックに失敗しました'
required: 'アップグレードが必要です'
+
viewEditDescription:
form:
description:
- placeholder: e.g. 開発者向けテスト用環境
+ placeholder: '例: 開発者向けテスト用環境'
+
viewEditProject:
showEdit:
edit: "環境を編集:"
@@ -2825,34 +3098,41 @@ vmConsole:
footerActions:
buttonSend: Ctrl-Alt-Delete を送る
buttonCancel: 閉じる
+
waitKubernetes:
addHost: '1台のホストを追加しています'
activateHost: 'ホストがアクティブになるのを待っています'
createStack: 'Kubernetes のシステムスタックを作成中'
startServices: 'サービスを起動中'
waitApi: 'Kubernetes API を待っています'
+
waitMesos:
addHost: '3台のホストを追加しています'
activateHost: 'ホストがアクティブになるのを待っています'
createStack: 'Mesos のシステムスタックを作成中'
startServices: 'サービスを起動中'
waitApi: 'Mesos マスターを待っています'
+
waitSwarm:
addHost: '1台のホストを追加しています'
activateHost: 'ホストがアクティブになるのを待っています'
createStack: 'Swarm のシステムスタックを作成中'
startServices: 'サービスを起動中'
+
containerChoices:
hostGroup: 'ホスト: {name}'
hostGroupWithState: 'ホスト: {name} ({state})'
unknownHost: 'ホスト: ???'
containerOption: "{name}"
containerOptionWithState: "{name} ({state})"
+
driver:
multiHostNames: "ホストは
{first} —
{last} と命名されます"
+
allServices:
stackGroup: 'スタック: {name}'
noName: '(スタック: {id})'
+
nav:
srToggleNav: ナビゲーションを切り替え
srToggleDropdown: ドロップダウンを切り替え
@@ -2928,6 +3208,7 @@ nav:
noHostsWindows:
prefix: "最初のサービスまたはコンテナを起動する前に Windows ホストが必要となります。"
link: "ホストを追加"
+
action:
activate: アクティブ化
backup: スナップショットをバックアップ
@@ -2938,6 +3219,7 @@ action:
console: コンソールを開く
deactivate: 非アクティブ化
edit: 編集
+ evacuate: 退避
execute: シェルを実行
exportConfig: 設定をエクスポート
finishUpgrade: アップグレードを完了
@@ -2966,6 +3248,7 @@ action:
viewGraph: グラフを見る
viewInApi: API を見る
viewInstance: インスタンスを見る
+
model:
account:
kind:
diff --git a/translations/ru-ru.yaml b/translations/ru-ru.yaml
index c07c7c0ed7..aa524ea3c7 100644
--- a/translations/ru-ru.yaml
+++ b/translations/ru-ru.yaml
@@ -2040,7 +2040,7 @@ pageFooter:
forums: Форум
download:
link: Скачать CLI
- headerCli: Rancher CLI (beta)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: Mac OS X
windows: Windows
diff --git a/translations/uk-ua.yaml b/translations/uk-ua.yaml
index 3807d5f770..e3d36c358e 100644
--- a/translations/uk-ua.yaml
+++ b/translations/uk-ua.yaml
@@ -2425,7 +2425,7 @@ pageFooter:
slack: Slack
download:
link: Скачати CLI
- headerCli: Rancher CLI (бета-версія)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: macOS
windows: Windows
diff --git a/translations/zh-hans.yaml b/translations/zh-hans.yaml
index 82bed0c3c5..f9a61abc2a 100644
--- a/translations/zh-hans.yaml
+++ b/translations/zh-hans.yaml
@@ -3,18 +3,18 @@ languageContribute: "帮助翻译Rancher"
##############################
# Really generic things used in multiple places (use sparingly)
-##############################
+##############################
generic:
actions: 操作
activate: 激活
- any: 任何
+ any: 任何
as: 以
cancel: 取消
closeModal: 关闭
created: 创建
default: 默认
description: 描述
- disable: 停用
+ disable: 停用
disabled: 已停用
domainName: 域名
emptyString: ""
@@ -22,15 +22,15 @@ generic:
enabled: 已启用
expires: 过期
healthy: 健康
- id: ID
+ id: ID
image: 镜像
internal: 内部
ipAddress: IP地址
- limit: 限制
+ limit: 限制
loading: "加载中..."
- missing: "*%MISSING%*"
+ missing: "*%MISSING%*"
moreActions: 更多操作
- na: 'n/a'
+ na: 'n/a'
name: 名称
none: 无
ports: 端口
@@ -62,7 +62,7 @@ accountsPage:
localLink: 添加账号
table:
state: 状态
- id: ID
+ id: ID
kind: 类型
username: 用户名
name: 名称
@@ -82,7 +82,7 @@ accountsPage:
placeholder: "例如:John Smith"
type:
labelText: 账号类型
- dropdownList: 下拉列表
+ dropdownList: 下拉列表
description:
labelText: 描述
placeholder: "例如:这是John Smith的账号"
@@ -97,7 +97,7 @@ apiPage:
state: 状态
name: 名称
description: 描述
- publicValue: 访问秘钥
+ publicValue: 访问秘钥
created: 已创建
noData: 此环境还没有创建API Keys
noName: 无
@@ -119,7 +119,7 @@ auditLogsPage:
resourceType:
placeholder: "资源类型:"
dropdownPlaceholder: '选择一种资源类型:'
- dropdownList: 下拉列表
+ dropdownList: 下拉列表
resourceId:
placeholder: 资源ID
requestIp:
@@ -127,7 +127,7 @@ auditLogsPage:
authType:
placeholder: "认证类型:"
dropdownPlaceholder: '选择认证类型:'
- dropdownList: 下拉列表
+ dropdownList: 下拉列表
clearButtonText: 全部清除
searchButtonText: 搜索
table:
@@ -170,7 +170,7 @@ authPage:
authenticated:
header:
text: 验证
- helpText: "要修改设置的Shibboleth应用,请在下方禁用访问控制后重新设置。"
+ helpText: "要修改设置的Shibboleth应用,请在下方禁用访问控制后重新设置。"
disableAccess:
header: "危险区域™"
warning: '
警告: 禁用访问控制将导致任何能够访问此页面或API的用户拥有对 {appName} 的完全控制权限。'
@@ -201,11 +201,11 @@ authPage:
providerName:
- shibboleth: Shibboleth
+ shibboleth: Shibboleth
root:
header: 访问控制
github:
- standard: GitHub
+ standard: GitHub
enterprise: GitHub企业版
header:
enabled:
@@ -374,7 +374,7 @@ backupTargetsPage:
catalogPage:
index:
header: '应用商店'
- manage: 管理
+ manage: 管理
search:
placeholder: 搜索....
category: "分类:"
@@ -384,14 +384,14 @@ catalogPage:
partner: 官方
pl:
rancher: Core
- partner: 官方
+ partner: 官方
noData:
singular: 没有符合的应用模板
plural: 当前目录下没有符合的应用模板
action:
launch: 查看详情
notCompatible: 不兼容
- alreadyDeployed: 已部署
+ alreadyDeployed: 已部署
consolePage:
header: '命令行:'
closeButton: 关闭
@@ -438,7 +438,7 @@ containersPage:
primaryHostUnknown: 未知
image: 镜像
stats: 统计
- sparkPrefixCpu: "CPU: "
+ sparkPrefixCpu: "CPU: "
sparkPrefixMemory: '内存:'
sparkPrefixNetwork: '网络:'
sparkPrefixStorage: '存储:'
@@ -457,7 +457,7 @@ containersPage:
command: 命令
body:
noData: 当前未创建任何容器。
- noMatch: 没有符合搜索条件的容器
+ noMatch: 没有符合搜索条件的容器
new:
form:
name:
@@ -470,6 +470,7 @@ containersPage:
on: on
in: 所属服务
infoMultiStats:
+ created: '创建于:'
tooltip:
host: 复制到剪贴板
host: '主机:'
@@ -491,7 +492,7 @@ containersPage:
networking: 网络
healthCheck: 健康检查
scheduling: 调度
- security: 安全
+ security: 安全
portsTab:
table:
header:
@@ -504,11 +505,11 @@ containersPage:
volumesTab:
table:
header:
- name: 名称
+ name: 名称
mount: 挂载点
shared: 共享
writable: 可写
- snapshot: 快照时间线
+ snapshot: 快照时间线
body:
error:
data: '错误:'
@@ -523,7 +524,7 @@ dockerCLI:
# If you change translations here also change the translation in app/utils/constants.js under the FALLBACK_TRANSLATIONS key
# those are present incase we have an error in the app and can not load the translations file
-# the error page will at least make a little sense
+# the error page will at least make a little sense
failWhalePage:
header: 错误
reloadButton: |
@@ -539,7 +540,7 @@ haPage:
address: 主机地址
port: 端口
heartbeat: 活动时间
- clustered: 集群
+ clustered: 集群
helpPage:
header: 常用链接及信息
banner: 公告
@@ -594,18 +595,18 @@ helpPage:
buttonText: 进入论坛
announcements:
header: 公告
- buttonText: 查看更多公告信息
+ buttonText: 查看更多公告信息
general:
header: 综合
buttonText: 查看更多综合讨论
rancherOs:
- header: RancherOS
+ header: RancherOS
buttonText: 查看更多RancherOS讨论
rancher:
- header: Rancher
+ header: Rancher
buttonText: 查看更多Rancher讨论
convoy:
- header: Convoy
+ header: Convoy
buttonText: 查看更多Convoy讨论
commercial:
header: 商业支持
@@ -637,7 +638,7 @@ hostsPage:
linkTo: 添加容器
infoMultiStats:
ip: 'IP:'
- cpu: 'CPU:'
+ cpu: 'CPU:'
memory: '内存:'
storage: '存储:'
provider:
@@ -645,12 +646,12 @@ hostsPage:
noHost: 自定义
kernel: '内核:'
docker: 'Docker:'
- os: '操作系统:'
+ os: '操作系统:'
description: '描述:'
milliCpu:
labelText: mCPU
localStorageMb:
- labelText: 本地存储
+ labelText: 本地存储
navTabs:
containers: 容器
ports: 端口
@@ -694,7 +695,7 @@ k8sTab:
header: Kubernetes命令行
stepOne:
generateConfigText: |
- '要在客户端使用
kubectl (v1.4+ 以上) , 单击以下按钮生成API Key和配置文件:'
+ '要在客户端使用
kubectl (v1.4+ 以上) , 单击以下按钮生成API Key和配置文件:'
generateButton: 生成配置
stepTwo:
progress: 生成中...
@@ -716,8 +717,8 @@ loginPage:
generic: "登录时遇到以下错误 ({errorCode})。请重试。"
error:
authFailed: 用户名或密码错误.
- timedOut: 会话超时,请重新登录.
-
+ timedOut: 会话超时,请重新登录.
+
machinePage:
header: 主机驱动
inactive: 未激活
@@ -756,10 +757,10 @@ mesosPage:
manage:
header: 管理
content: 通过Mesos UI管理Mesos
- button: Mesos UI
+ button: Mesos UI
# If you change translations here also change the translation in app/utils/constants.js under the FALLBACK_TRANSLATIONS key
# those are present in case we have an error in the app and can not load the translations file
-# the error page will at least make a little sense
+# the error page will at least make a little sense
notFoundPage:
header: "查看的页面不存在!"
linkTo: 回到首页
@@ -770,12 +771,12 @@ projectList:
subtext: |
{appName} 支持将资源分组归属到多个环境 。 每个环境具有自己独立的基础架构资源及服务,并由一个或多个用户、团队或组织所管理。
例如,您可以创建独立的“开发”、“测试”及“生产”环境以确保环境之间的安全隔离,将“开发”环境的访问权限赋予全部人员,但限制“生产”环境的访问权限给一个小的团队。
-
- alert: 当前没有活动环境。在进行其他操作前,需要先创建或激活一个环境。
+
+ alert: 当前没有活动环境。在进行其他操作前,需要先创建或激活一个环境。
table:
header:
orchestration: 编排
- projectTemplate: 模板
+ projectTemplate: 模板
body:
noData: "当前未创建任何环境"
indexTemplate:
@@ -789,7 +790,7 @@ projectList:
stacks: 应用
isPublic: 公开
body:
- noData: "当前没有任何环境模板"
+ noData: "当前没有任何环境模板"
registriesPage:
index:
header: 镜像库
@@ -824,12 +825,12 @@ secretsPage:
header: 密文
linkTo: 添加密文
noData: 当前未创建任何密文
- noMatch: 没有符合搜索条件的密文
+ noMatch: 没有符合搜索条件的密文
servicePage:
header: '服务:'
multistat:
type: '类型:'
- fqdn: 'FQDN:'
+ fqdn: 'FQDN:'
scale: '数量:'
image: '镜像:'
entryPoint: '入口:'
@@ -846,7 +847,7 @@ servicePage:
containers: 容器
labels: 标签
links: 链接
- log: 日志
+ log: 日志
containersTab:
table:
header:
@@ -861,7 +862,7 @@ servicePage:
noData: 无链接
certsTab:
default: 默认证书
- additional: 其他SNI证书
+ additional: 其他SNI证书
new:
form:
name:
@@ -875,7 +876,7 @@ servicePage:
description:
placeholder: '例如:MyApp最新版本'
newBalancer:
- upgradeImage: "负载均衡器镜像版本将由
{from} 升级到
{to}."
+ upgradeImage: "负载均衡器镜像版本将由
{from} 升级到
{to}."
form:
name:
placeholder: '例如:website'
@@ -907,18 +908,18 @@ servicePage:
kubernetesservice: K8s服务
composeservice: Compose服务
networkdriverservice: 网络服务
- storagedriverservice: 存储服务
+ storagedriverservice: 存储服务
settingsPage:
- header: 设置
+ header: 设置
stacksPage:
header:
all: 全部应用
user: 用户应用
custom: '{name} 应用'
tags: '"{tags}" 应用'
- infra: 基础设施应用
+ infra: 基础设施应用
actionButton: 添加应用
- catalogButton: 从应用商店添加
+ catalogButton: 从应用商店添加
sort:
label: 排序
state: 状态
@@ -927,7 +928,7 @@ stacksPage:
all: 全部标签
one: '标签: {name}'
noInfra: You do not currently have any Infrastructure Stacks
- noMatch: No Stacks match the selected tag
+ noMatch: No Stacks match the selected tag
new:
header: 添加应用
composeLabel: '可选:导入Compose'
@@ -945,14 +946,14 @@ stacksPage:
startOnCreate:
label: 创建后启动服务
storagePoolsPage:
- header: 存储驱动
+ header: 存储驱动
volume: 卷ID
orphaned: 孤立备份
nav:
pools: 池
backups: 备份
index:
- noData: 没有存储驱动
+ noData: 没有存储驱动
newVolume:
header: 添加卷
form:
@@ -1033,7 +1034,7 @@ processesPage:
runTime: 运行时间
runAfter: 延迟运行
noData: '当前没有进程数据'
- noMatch: 没有符合搜索条件的进程
+ noMatch: 没有符合搜索条件的进程
virtualMachinePage:
header: '虚拟机:'
multistat:
@@ -1071,7 +1072,7 @@ waitingPage:
kubernetes: 设置Kubernetes
##############################
# Partials
-##############################
+##############################
aliasServicePartial:
serviceLinks:
labelText: 服务链接
@@ -1083,7 +1084,7 @@ externalServicePartial:
extService:
labelText: 外部服务
linkTo: 查看详情
- ips: IPs
+ ips: IPs
hostname: '主机名称:'
description: '描述:'
hostPartial:
@@ -1099,7 +1100,7 @@ hostPartial:
ldap:
providerName:
openldap: OpenLDAP
- ad: 活动目录
+ ad: 活动目录
header:
enabled:
label: "{providerName} 已启用"
@@ -1163,11 +1164,14 @@ ldap:
labelText: 主机名或IP地址
port:
labelText: 端口
- checkbox: TLS
+ checkbox: TLS
serviceUsername:
labelText: 服务账号用户名
servicePassword:
labelText: 服务账号密码
+ timeout:
+ labelText: 连接超时
+ unit: 毫秒
userSearchBase:
labelText: '用户搜索起点:'
placeholder: "例如: ou=Users,dc=mycompany,dc=com"
@@ -1175,7 +1179,7 @@ ldap:
groupSearchBase:
labelText: '组搜索起点:'
placeholder: "例如: ou=Groups,dc=mycompany,dc=com"
- helpText: "设置后,会在此搜索起点下搜索组而不会在用户搜索起点下搜索组."
+ helpText: "设置后,会在此搜索起点下搜索组而不会在用户搜索起点下搜索组."
defaultDomain:
helpText: "当用户未指定登录域时使用该域"
labelText: 默认登录域
@@ -1198,7 +1202,7 @@ ldap:
disabledBitMask:
labelText: 禁用状态位掩码
userMemberAttribute:
- labelText: 用户成员属性
+ labelText: 用户成员属性
groups:
header: 组
objectClass:
@@ -1213,8 +1217,8 @@ ldap:
groupMemberMapping:
labelText: 组成员映射属性
groupDN:
- labelText: Group DN
- placeholder: distinguishedName
+ labelText: Group DN
+ placeholder: distinguishedName
testAuth:
header: "3. 测试并启用验证"
helpText: "通过你的 {providerName} 账号进行验证测试以确认配置是否正确:"
@@ -1240,16 +1244,16 @@ serviceInfoPartial:
description: '描述:'
containers: 容器
scale: 数量
- global: 全局
+ global: 全局
noContainers: 无容器
ports: 端口
noPublicPorts: 无映射端口
links: 链接
noLinks: 无链接
- fqdn: 'FQDN:'
+ fqdn: 'FQDN:'
##############################
# Components
-##############################
+##############################
advancedSection:
hrText: 高级选项
catalogSettings:
@@ -1260,7 +1264,7 @@ catalogSettings:
rancher: "{appName} 官方认证"
pl: 官方认证
detail:
- rancher: "Rancher核心功能所依赖的模板,例如Kubernetes/Mesos/Swarm编排支持。由Rancher官方维护并提供支持。"
+ rancher: "Rancher核心功能所依赖的模板,例如Kubernetes/Mesos/Swarm编排支持。由Rancher官方维护并提供支持。"
pl: 由官方维护的核心功能所需要的模板,例如Kubernetes/Mesos/Swarm等
community:
header:
@@ -1285,14 +1289,14 @@ catalogSettings:
helm: Helm
branch:
label: 分支
- placeholder: '例如: master'
+ placeholder: '例如: master'
confirmDelete:
title: '是否确认要删除'
environmentNote: '注意:此环境内的所有资源都将被永久性的删除,包括通过{appName}创建的主机。'
protip: '高级技巧:在点击删除时按住 {key} 键以跳过确认操作。'
confirmAction: 删除
cancelAction: 取消
- largeDeleteText: '{key} 及 {othersCount} 其他'
+ largeDeleteText: '{key} 及 {othersCount} 其他'
containerLogs:
title: '日志: {instanceName}'
onlyCombined: "
注意: 此容器运行时带有TTY(-t)参数,仅有合并的标准输出和标准错误日志可见"
@@ -1324,13 +1328,13 @@ copyToClipboard:
dangerZone:
header: 高级设置
subtext: "注意:通常情况下用户无需修改此类设置。不正确的设置可能会导致 {appName} 部署损坏。被修改的设置会用粗体显示。"
- showLabel: 我确认已经知道修改高级设置可能导致问题
+ showLabel: 我确认已经知道修改高级设置可能导致问题
devicePermissions:
all: 全部
none: 无
read: 读
write: 写
- mknod: Mknod
+ mknod: Mknod
editAccount:
title: 编辑账号
form:
@@ -1380,10 +1384,10 @@ editBalancerService:
'此处可以设置其他
haproxy.cfg
配置项,相关内容将被附加到 {appName} 生成的配置中。'
global:
- label: '
global section'
+ label: '
global section'
prompt: 自定义的global section设置
defaults:
- label: '
defaults section'
+ label: '
defaults section'
prompt: 自定义的default section设置
editCertificate:
title: 编辑证书
@@ -1425,9 +1429,9 @@ editHost:
valueLabel: IP地址
valuePlaceholder: '例如: 1.2.3.4'
addActionLabel: 添加IP
- help: '如果设置,调度器将从中选择一个IP地址并将发布的端口绑定到该地址。'
+ help: '如果设置,调度器将从中选择一个IP地址并将发布的端口绑定到该地址。'
requireAny:
- label: 容器标签需求
+ label: 容器标签需求
help: '如果设置,容器必须具备设置的一个或者多个标签才能够被调度到该主机。如果仅设置Key而Value留空,具备相应Key的容器可以被调度到该主机而忽略Value的值。
io.rancher.container.system标签是运行系统容器所必须的。'
addActionLabel: 添加标签需求
@@ -1445,7 +1449,7 @@ editProjectTemplate:
error:
conflict: 冲突
enabling: "所选的基础设施服务\"{stackName}\"版本 {tplCategory} 不支持 {orchestration} 编排."
- changing: "当前启用的基础设施服务\"{stackName}\"版本 {tplCategory} 不支持 {orchestration} 编排."
+ changing: "当前启用的基础设施服务\"{stackName}\"版本 {tplCategory} 不支持 {orchestration} 编排."
editRegistry:
title: 编辑镜像库
address:
@@ -1477,7 +1481,7 @@ editStack:
envCatalog:
header: 管理应用商店
subtext: '可以在这里定义自定义的应用商店源,该应用商店仅对当前环境的用户可见。全局应用商店对所有环境可见,仅能由管理员在管理设置中修改。应用商店需要一个唯一的名称并且支持
git clone 的URL地址 (参考
文档 以获取更多信息)。'
- addActionLabel: 添加应用商店
+ addActionLabel: 添加应用商店
stackHeader:
backLink: "应用:"
outputs: 输出
@@ -1540,7 +1544,7 @@ formCommand:
placeholder: '例如:/usr/sbin/httpd -f httpd.conf'
entryPoint:
label: 入口
- placeholder: '例如:/bin/sh'
+ placeholder: '例如:/bin/sh'
workingDir:
label: 工作目录
placeholder: '例如:/myapp'
@@ -1566,8 +1570,11 @@ formCommand:
other {次}
}
always: 总是
+ drainTimeout:
+ label: 优雅停止超时
+ unit: 毫秒
environment:
- label: 环境变量
+ label: 环境变量
addAction: 添加环境变量
keyLabel: 变量
keyPlaceholder: '例如:foo'
@@ -1637,7 +1644,7 @@ formEngineOpts:
valueLabel: 镜像URL
valuePlaceholder: '例如:https://my-mirror.example.com:5000'
formHealthCheck:
- label: 类型
+ label: 类型
checkType:
none: 无
tcp: TCP连接
@@ -1669,10 +1676,10 @@ formHealthCheck:
label: 检查超时
unit: 毫秒
healthyThreshold:
- label: 健康阈值
+ label: 健康阈值
unit: 次成功
unhealthyThreshold:
- label: 不健康阈值
+ label: 不健康阈值
unit: 次失败
strategy:
label: 不健康时
@@ -1689,7 +1696,7 @@ formKeyValue:
key:
label: 键
placeholder: 键
- separator: "="
+ separator: "="
value:
label: 值
placeholder: 值
@@ -1717,15 +1724,15 @@ formNetwork:
as: 名称
data:
dest: '模板容器:'
- as: '名称:'
+ as: '名称:'
networkMode:
label: 网络
bridge: 桥接
- container: 容器
+ container: 容器
host: 主机
managed: 托管
nat: NAT
- transparent: Transparent
+ transparent: Transparent
none: 无
container:
label: 容器
@@ -1737,7 +1744,7 @@ formNetwork:
label: 保持IP
reuse: 当升级或替换不健康的容器实例时保持IP地址不变。
dns:
- label: DNS
+ label: DNS
enable: 启用 {appName} DNS服务发现
hostname:
label: 主机名
@@ -1750,12 +1757,12 @@ formNetwork:
placeholder: '例如: example.com'
resolvingServers:
label: DNS服务器
- addActionLabel: 添加服务器
+ addActionLabel: 添加服务器
placeholder: '例如: 8.8.4.4'
searchDomains:
label: 搜索域
placeholder: '例如: prod.example.com'
- addActionLabel: 添加搜索域
+ addActionLabel: 添加搜索域
formPorts:
addAction: 端口映射
bindAddress:
@@ -1763,7 +1770,7 @@ formPorts:
placeholder: "例如: 1.2.3.4; 默认: any"
public:
label: 公开主机端口
- placeholder: "例如: 80"
+ placeholder: "例如: 80"
private:
label: 私有容器端口
placeholder: "例如:8080"
@@ -1775,7 +1782,7 @@ formPorts:
publicRequired: 指定主机IP时必须设置公开主机端口
mixedIpPort: "Port {ip}:{port}/{proto} 有超过一条映射规则"
mixedPort: "Port {port}/{proto} 有超过一条映射规则"
- showIpLink: 显示主机IP选项
+ showIpLink: 显示主机IP选项
formScale:
label: 数量
global:
@@ -1800,7 +1807,7 @@ formScheduling:
containers: 在指定主机上运行
全部 容器
runSpecific: 在指定主机上运行
noRules: 无调度规则
- autoRun: "自动在符合调度规则的每一台主机上运行:"
+ autoRun: "自动在符合调度规则的每一台主机上运行:"
autoPick:
vm: "为每一个虚拟机自动选择符合调度规则的主机:"
container: "为每一个容器自动选择符合调度规则的主机:"
@@ -1834,7 +1841,7 @@ formSecrets:
suffix: ""
formSecurity:
key: 键
- value: 值
+ value: 值
logConfig:
addActionLabel: 添加选项
keyPlaceholder: '例如: syslog-facility'
@@ -1848,10 +1855,10 @@ formSecurity:
memoryLimit:
label: 内存限制
placeholder: 无限制
- mb: MB
+ mb: MB
swapLimit:
label: + 交换限制
- mb: MB
+ mb: MB
placeholder1: 请求内存限制
placeholder2: 无限制
cpuPinning:
@@ -1869,7 +1876,7 @@ formSecurity:
link: 更多信息
deviceBinding:
label: 设备绑定
- addActionLabel: 增加绑定
+ addActionLabel: 增加绑定
pathHost:
label: 主机内路径
placeholder: '例如: /dev/sdc'
@@ -1912,10 +1919,10 @@ formSslTermination:
alternateCerts: 备选证书
addAlternate: 添加备选证书
noCertificates: 当前无证书可用
- noAlternateCertificates: 当前无其他证书可用
+ noAlternateCertificates: 当前无其他证书可用
helpBlock: |
"注意: 一些旧的 SSL/TLS 客户端不支持
Server Name Indication (SNI) 功能,对于这些客户端将只提供主证书。 对于支持SNI功能的现代客户端将根据匹配结果从备选证书列表中选择一个合适的证书。"
- notNeeded: 未设置SSL/TLS端口
+ notNeeded: 未设置SSL/TLS端口
formStickiness:
stickiness: 会话保持
@@ -1928,7 +1935,7 @@ formStickiness:
indirect: 间接
sendHeader: 发送no-cache头
onPost: 仅对POST请求设置Cookie
- noPorts: 未设置HTTP端口规则
+ noPorts: 未设置HTTP端口规则
placeholder:
sticky: '例如: sticky'
@@ -1944,7 +1951,7 @@ formTargets:
title: 目标
addAction: 添加服务
hostname:
- label: 请求头信息
+ label: 请求头信息
placeholder: '例如:svc.com'
srcPort:
label: 源端口
@@ -1976,7 +1983,7 @@ formUserLabels:
key:
label: 键
placeholder: '例如: foo'
-
+
value:
label: 值
placeholder: '例如:bar'
@@ -2014,7 +2021,7 @@ formVolumes:
addActionLabel: 添加卷
errors:
invalidName: '卷名称只能包含字母、数字、-、_和.'
-
+
heroAddService:
infra:
header: 添加基础设施应用
@@ -2023,37 +2030,37 @@ heroAddService:
header: 创建第一个应用
paragraph1: |
'服务是一组由相同docker镜像创建的容器,服务扩展了Docker的“link”概念以利用{appName}的轻量级分布式DNS服务用于服务发现。服务可以单独添加或通过应用商店部署。'
- paragraph2: '服务也能够利用其他{appName}内置服务,如负载均衡、健康监控、升级支持以及高可用。'
+ paragraph2: '服务也能够利用其他{appName}内置服务,如负载均衡、健康监控、升级支持以及高可用。'
contentLink: 了解更多
addService: 定义一个服务
addCatalog: 配置
- linkToCatalog: 浏览应用商店
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ linkToCatalog: 浏览应用商店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
hookPage:
receiver:
header: Receiver Hooks
@@ -2106,7 +2113,7 @@ hostPod:
groupedInstances:
namespace: '命名空间:'
stack: '应用:'
- standalone: 独立容器
+ standalone: 独立容器
identityBlock:
loading: 加载中...
@@ -2142,7 +2149,7 @@ inputCertificate:
placeholder: "可选:粘贴或导入额外的证书链,以-----BEGIN CERTIFICATE-----开头"
metaXML:
label: Metadata XML
- placeholder: "粘贴 IDP Metadata XML"
+ placeholder: "粘贴 IDP Metadata XML"
inputIdentity:
placeholder:
@@ -2192,7 +2199,7 @@ k8s:
header: 添加第一个应用
content: |
Stacks are deployed from the {appName} Catalog and keep a group of related Deployments, Replication Controllers, or other resources organized.
- linkToCatalog: 从应用商店添加
+ linkToCatalog: 从应用商店添加
newOrEditResource:
edit: 编辑
add: 添加
@@ -2202,7 +2209,7 @@ k8s:
status: 状态
containers: 容器
hostIp: 主机IP
- podIp: Pod IP
+ podIp: Pod IP
noData: 无Pods
rcSection:
name: 复制控制器名称
@@ -2223,7 +2230,7 @@ k8s:
protocol: 协议
noPorts: 无端口
serviceRow:
- defaultType: ClusterIP
+ defaultType: ClusterIP
serviceSection:
name: 服务名称
clusterIp: Cluster IP
@@ -2245,8 +2252,8 @@ lbAddtlInfo:
global: 全局
ports: 端口
noPorts: 无公开主机端口
- targets: 目标
- to: 到
+ targets: 目标
+ to: 到
labelsSection:
kind: 类型
@@ -2271,10 +2278,10 @@ machine:
driverAmazon:
accessSection: 账户访问
accessKey:
- label: Access Key
+ label: Access Key
placeholder: 你的AWS access key
secretKey:
- label: Secret Key
+ label: Secret Key
placeholder: 你的AWS secret key
provided: 已提供
region:
@@ -2284,7 +2291,7 @@ machine:
loadingAvailability: 从EC2加载可用区和VPC信息...
vpcSection: 可用区 & VPC
availabilityZone: 可用区
- subnet: VPC/Subnet
+ subnet: VPC/Subnet
securityGroupSelect: '下一步:选择安全组'
loadingSecurity: 从EC2加载安全组信息...
securityGroupSection: 安全组
@@ -2310,7 +2317,7 @@ machine:
label: 实例类型
rootSize:
label: 根分区硬盘大小
- unit: GB
+ unit: GB
ami:
label: Amazon系统映像(AMI)
placeholder: Ubuntu AMI
@@ -2326,10 +2333,10 @@ machine:
label: 仅使用私有IP地址
driverAzure:
- helpBlock: '参考
链接文档 创建客户端ID和秘钥'
+ helpBlock: '参考
链接文档 创建客户端ID和秘钥'
accountAccessSection: 账户访问
placementSection: 位置
- networkSection: 网络
+ networkSection: 网络
subscriptionId:
label: 订阅ID
placeholder: Azure订阅ID
@@ -2388,20 +2395,20 @@ machine:
placeholder: Your Client ID
clientSecret:
label: 客户端秘钥
- placeholder: Your Client Secret
+ placeholder: Your Client Secret
regionSection: 区域
region:
labl: 区域
driverCustom:
- step1: Start up a Linux machine somewhere and install a
supported version of
Docker on it.
- step2: "确认安全组或防火墙允许以下通讯:"
+ step1: 启动一台Linux主机并在主机上安装好我们
支持的版本 的
Docker 。
+ step2: "确认安全组或防火墙允许以下通讯:"
step2li: 与其他所有主机之间的
UDP 端口
500 和
4500 (用于IPsec网络)
step3: '可选项: 在主机上增加标签'
step4: "指定用于注册这台主机的公网IP。如果留空,Rancher会自动检测IP注册。通常在主机有唯一公网IP 的情况下这是可以的。如果主机位于防火墙/NAT设备之后,或者主机同时也是运行
{rancherImage}容器的主机时,则必须设置此IP。"
agentIp:
placeholder: '例如: 1.2.3.4'
- step5Copy: 将下列脚本拷贝到每一台主机上运行以注册
+ step5Copy: 将下列脚本拷贝到每一台主机上运行以注册
generating: "生成注册URL..."
step5Close:
part1: 点击下面的关闭按钮,新的主机注册后会显示在
@@ -2411,10 +2418,24 @@ machine:
windows:
windowsHeader: Windows主机
linuxHeader: Linux主机
- step1: 运行一台Windows 2016主机并安装最新版本的
Docker on it.
+ step1: 运行一台Windows 2016主机并安装最新版本的
Docker
step2: "创建一个 transparent Docker 网络:"
step2Copy: docker network create -d transparent transparent
- step3: '复制粘贴下面的命令到Powershell命令行中运行以启动 {appName} agent'
+ step3: '复制粘贴下面的命令到Powershell命令行中运行以启动 {appName} agent'
+ windowsSteps:
+ step1: 运行一台Windows 2016主机并安装
支持的版本 的
Docker 。
+ step2: "检查并安装Windoes功能 RemoteAccess, Routing:"
+ step2Copy: Get-WindowsFeature -Name "RemoteAccess","Routing" | Install-WindowsFeature
+ step2Note: "注意:安装功能成功后,Windows主机需要被重启。"
+ step3: 请设置Windows主机的子网. 在Windows环境中,只支持 per-host-subnet网络模型
+ step4: 请设置子网的路由IP,此IP用于转发不同主机上容器之间的网络流量
+ routerIp:
+ placeholder: e.g. 1.2.3.4
+ subnet:
+ placeholder: e.g. 192.168.0.0/24
+ step5: "指定用于注册这台主机的公网IP。如果留空,Rancher会自动检测IP注册。通常在主机有唯一公网IP 的情况下这是可以的。如果主机位于防火墙/NAT设备之后,或者主机同时也是运行
{rancherImage}容器的主机时,则必须设置此IP。"
+ step6: "可选项: 在主机上增加标签"
+ step7: 制粘贴下面的命令到Powershell命令行中运行以启动 {appName} agent
driverDigitalocean:
sizeLabel: |
@@ -2435,7 +2456,7 @@ machine:
label: 镜像
sshUser:
label: SSH用户
- placeholder: 'usr1'
+ placeholder: 'usr1'
size:
label: 大小
regionSection: 区域
@@ -2448,14 +2469,20 @@ machine:
label: 启用IPv6
privateNetworking:
label: 启用私有网络
+ monitoring:
+ label: 启用监控
+ tags:
+ addActionLabel: 添加Tag
+ valueLabel: Tag
+ placeholder: '例如: dev'
driverExoscale:
accountSection: 账户访问
apiKey:
- label: API Key
+ label: API Key
placeholder: 你的Exoscale API Key
secretKey:
- label: Secret Key
+ label: Secret Key
placeholder: 你的Exoscale secret key
provided: 已提供
accountHelp: 在此粘贴你的Exoscale密钥对,我们将用秘钥创建新的实例。
@@ -2501,7 +2528,7 @@ machine:
label: 项目
placeholder: 你的Packet项目ID
apiKey:
- label: API Key
+ label: API Key
placeholder: 你的Packet API Key
apiKeyHelp: '由Packet的
API Keys 页面获取'
instanceSection: 实例
@@ -2527,18 +2554,18 @@ machine:
label: 区域
instanceSection: 实例
flavor:
- label: 偏好
+ label: 偏好
driverUbiquity:
accountSection: 账户访问
clientId:
- label: Reseller ID
+ label: Reseller ID
placeholder: 你的Ubiquity Hosting API Reseller ID
apiUsername:
- label: Remote ID
+ label: Remote ID
placeholder: 你的Ubiquity Hosting API Reseller ID
apiToken:
- label: Access Key
+ label: Access Key
placeholder: 你的Ubiquity Hosting Access Key
provided: 已提供
accountHelp: '你可以从
这里 找到你的Ubiquity Hosting API密码。还没有账号?了解更多
Ubiquity Hosting 信息!'
@@ -2569,12 +2596,12 @@ machine:
label: CPUs
memorySize:
label: 内存
- unit: MB
+ unit: MB
diskSize:
label: 磁盘
- unit: MB
+ unit: MB
boot2dockerUrl:
- label: 操作系统ISO下载地址
+ label: 操作系统ISO下载地址
placeholder: '缺省:最新的boot2docker镜像'
schedulingSection: 计划
dataCenter:
@@ -2592,11 +2619,11 @@ machine:
driverAliyunecs:
accountSection: 账户设置
accessKey:
- label: Access Key*
+ label: Access Key*
placeholder: 阿里云账号中的 Access Key
accessKeySecret:
label: Secret Key*
- placeholder: 账号Key的secret
+ placeholder: 账号Key的secret
apiEndpoint:
label: API网关地址
placeholder: 如果你是私有的阿里云服务器,请输入API地址
@@ -2615,14 +2642,14 @@ machine:
placeholder: 阿里云中实例显示的标签
internetMaxBandwidth:
label: 最大网络带宽
- placeholder: 1 到 100
+ placeholder: 1 到 100
aliyunSLB:
label: 阿里云负载均衡ID
placeholder: 如果需要使用阿里云的负载均衡服务,请输入ID
storageSection: 存储设置
- isOptimized:
+ ioOptimized:
label: 是否存储IO优化(none代表不优化,optimized代表优化)
- placeholder: none 或 optimized
+ placeholder: none 或 optimized
systemDiskCategory:
label: 系统盘种类
placeholder: 选择了优化IO时,可输入cloud_efficiency, cloud_ssd or ephemeral_ssd.
@@ -2641,7 +2668,7 @@ machine:
networkSection: 网络设置
routeCIDR:
label: 路由CIDR
- placeholder: '例如: 192.168.1.0/24'
+ placeholder: '例如: 192.168.1.0/24'
vpcId:
label: 阿里云虚拟网络ID
placeholder: 如果需要使用阿里云虚拟网络,请输入虚拟网络ID
@@ -2660,6 +2687,17 @@ machine:
sshPassword:
label: SSH 密码
placeholder: 创建实例后SSH远程登录密码,留空则自动设置
+ errors:
+ nameTooShort: 名称至少含有2个字符。
+ nameNotValid: 名称不符合 Aliyunecs 上主机名称的规则。
+ nameTooLong: 名称不能超过30个字符。
+ accessKeyRequired: Access key 不能为空。
+ accessSecretRequired: Access Secret 不能为空。
+ sshPasswordRequired: SSH 密码 不能为空。
+ sshPasswordLengthNotValid: SSH 密码 至少含有8个字符,并不多于30个字符。
+ sshPasswordInvalidCharacter: SSH 密码中含有非法字符。
+ sshPasswordFormatError: SSH 密码 中必需含有大写字母,小写字母,数字,特殊字符中的至少三种。
+ nameNotValidForApp: 名称不符合 {appName} 主机名称规则
modalAboutComponent:
component: 组件
@@ -2668,7 +2706,7 @@ modalAboutComponent:
cli: CLI
ui: 用户界面
compose: Compose
- machineService: 主机服务
+ machineService: 主机服务
cloe: 关闭
modalAuditlogInfo:
@@ -2750,7 +2788,7 @@ modalHostEvacuate:
modalProcessError:
header: 异常信息
cause: "原因:"
- none: N/A
+ none: N/A
stackTrace: "堆栈跟踪:"
cloe: 关闭
@@ -2760,11 +2798,11 @@ modalRollbackVolume:
backup: 回滚到备份
modalShell:
- title: '命令行: {instnceName}'
+ title: '命令行: {instanceName}'
modalWelcome:
header: 欢迎使用 {appName}!
- closeModal: 确认
+ closeModal: 确认
newAliasService:
header: 添加服务别名
@@ -2774,7 +2812,7 @@ newBalancer:
header:
add: 添加负载均衡
edit: 编辑负载均衡
- upgrade: 升级负载均衡
+ upgrade: 升级负载均衡
tabs:
ssl: SSL终止
stickiness: 会话粘性
@@ -2792,12 +2830,12 @@ newBalancer:
invalidTargetPort: "不正确的目标端口: '{num}'"
mixedPort: "端口 {num} 有多条冲突的访问/协议规则"
noTarget: "每条规则必须设置目标端口"
- needsCertificate: "设置SSL/TLS规则时需要证书"
+ needsCertificate: "设置SSL/TLS规则时需要证书"
newCatalog:
version:
prompt: 选择版本...
- default: 当前默认 (当前版本 {version})
+ default: 当前默认 (当前版本 {version})
saveUpgrade: 升级
saveNew: 启动
saveConfigure: 设置
@@ -2812,11 +2850,11 @@ newCatalog:
url: "项目URL:"
titleAdd: "添加 {name} 应用"
titleUpgrade: "升级 {name} 应用"
- titleConfigure: "设置 {name} 应用"
+ titleConfigure: "设置 {name} 应用"
templateVersion: 模板版本
selectVersionAdd: 选择一个模板版本部署
selectVersionUpgrade: 选择一个模板版本升级
- selectVersionConfigure: 选择一个模板版本设置
+ selectVersionConfigure: 选择一个模板版本设置
newStack: 新应用
config: 配置选项
unknownType: "未识别问题类型:"
@@ -2854,7 +2892,7 @@ newContainer:
scheduling: 调度
balancing: 负载均衡
secrets: 密文
- selectUpgrade: 选择一个或者多个服务进行升级
+ selectUpgrade: 选择一个或者多个服务进行升级
saveUpgrade: 升级
saveNew: 创建
removeSidekick: 删除从容器
@@ -2911,6 +2949,15 @@ newReceiver:
max:
label: 最大数量
placeholder: '例如: 20'
+ payloadFormat:
+ label: 镜像仓库Webhook参数格式
+ alicloud: 阿里云
+ dockerhub: Docker Hub
+ addressType:
+ label: 地址类型
+ registry: 公网地址
+ registry-vpc: VPC网络
+ registry-internal: 经典内网
tag:
label: 镜像标签
placeholder: "例如: latest"
@@ -2938,7 +2985,7 @@ pageFooter:
wechat: 微信
download:
link: 下载CLI
- headerCli: Rancher CLI (beta)
+ headerCli: Rancher CLI
headerCompose: Rancher Compose
mac: Mac OS X
windows: Windows
@@ -2949,7 +2996,7 @@ pagination:
{pages, plural,
=0 {0 Items}
=1 {{count} {count, select, =1 {Item} other {Items}}}
- other {{from} - {to} of {count}}}
+ other {{from} - {to} of {count}}}
pageHeaderEnvironment:
namespace: 命名空间
@@ -2963,7 +3010,7 @@ projectUpgrade:
detail: "{appName} {appVersion} 包含更新需要升级已有的系统服务以及负载均衡器容器。"
notOwner: "只有环境的所有者或者管理员能够进行升级操作。"
actionButton: 立刻升级
- banner: 环境升级中...
+ banner: 环境升级中...
registryRow:
address: 地址
@@ -2991,7 +3038,7 @@ saveCancel:
saved: 已保存!
edit: 保存
create: 创建
- cancl: 取消
+ cancel: 取消
schema:
inputBoolean:
@@ -3004,7 +3051,7 @@ schema:
inputService:
prompt: 选择服务...
inputSecret:
- prompt: 选择密文...
+ prompt: 选择密文...
schedulingRuleRow:
theHost: 主机
@@ -3025,7 +3072,7 @@ serviceLink:
differentStack: "{stack}/{service} 链接为 {alias}"
noAlias:
sameStack: "{service}"
- differentStack: "{stack}/{service}"
+ differentStack: "{stack}/{service}"
sidekickAddtlInfo:
info: 信息
@@ -3086,7 +3133,7 @@ stackSection:
details: 查看详情
containers: 容器
actions: 操作
- upgradeImage: 升级容器镜像
+ upgradeImage: 升级容器镜像
snapshotSection:
@@ -3110,7 +3157,7 @@ storagePoolSection:
snapshotState: '快照状态'
snapshotName: '快照名称'
backedUp: '已备份'
- mounts: '挂载点 (Container: Path)'
+ mounts: '挂载点 (Container: Path)'
svgServiceContainer:
sidekicks: 从容器
@@ -3132,7 +3179,7 @@ swarmTab:
dashboard:
header: 仪表板
dashboard:
- content: 'Portainer是一个轻量级的管理UI界面,能够让你方便的管理Docker Swarm集群。'
+ content: 'Portainer是一个轻量级的管理UI界面,能够让你方便的管理Docker Swarm集群。'
button: Portainer UI
telemetryOpt:
@@ -3141,12 +3188,12 @@ telemetryOpt:
Rancher Labs希望能够收集您环境的匿名配置信息以帮助改进{appName}产品。
您的信息不会被提供给任何第三方,收集的信息不包含特定的资源名称或地址。
learnMore:
label: 了解更多
- label: 允许收集匿名统计信息
+ label: 允许收集匿名统计信息
tooltipLink:
list: 列表
linkGraph: 链接图
- composeYaml: 编排文件
+ composeYaml: 编排文件
tooltipWarning:
notConfigured: 未设置访问控制
@@ -3154,7 +3201,7 @@ tooltipWarning:
upgradeBtn:
version:
- current: '当前版本'
+ current: '当前版本'
status:
none: '无'
loading: '检查更新...'
@@ -3164,7 +3211,7 @@ upgradeBtn:
upgraded: '已升级: 完成升级'
notfound: '未识别模板版本'
error: '检查更新出错'
- required: '需要升级'
+ required: '需要升级'
viewEditDescription:
form:
@@ -3212,7 +3259,7 @@ volumeRow:
readOnly: "(read-only)"
waitOrchestration:
- count: '({sub} of {count})'
+ count: '({sub} of {count})'
waitKubernetes:
addHost: '添加至少一台主机'
@@ -3242,21 +3289,21 @@ containerChoices:
hostGroupWithState: '主机:{name}{state}'
unknownHost: '主机:???'
containerOption: "{name}"
- containerOptionWithState: "{name} ({state})"
+ containerOptionWithState: "{name} ({state})"
driver:
multiHostNames: "主机将被命名为
{first} —
{ast} "
##############################
# Services
-##############################
+##############################
allServices:
stackGroup: '应用:{name}'
noName: '(应用:{id})'
##############################
# Navigation
-##############################
+##############################
nav:
srToggleNav: 切换导航
srToggleDropdown: 切换下拉菜单
@@ -3266,35 +3313,35 @@ nav:
your: 你的环境
selected: 当前环境
manage: 环境管理
- edit: '编辑 "{name}"'
+ edit: '编辑 "{name}"'
namespace:
label: 命名空间
manage: 命名空间管理
- notReady: 设置中...
+ notReady: 设置中...
k8s:
tab: Kubernetes
cli: CLI
dashboard: 仪表板
- system: 基础设施
+ system: 基础设施
swarm:
tab: Swarm
cli: CLI
dashboard: Portainer
- system: 基础设施
+ system: 基础设施
mesos:
- tab: Mesos
+ tab: Mesos
web: 概览
- system: 基础设施
+ system: 基础设施
cattle:
tab: 应用
all: 全部
user: 用户
- system: 基础设施
+ system: 基础设施
catalog:
tab: 应用商店
all: 全部
library: 官方认证
- community: 社区共享
+ community: 社区共享
infra:
tab: 基础架构
hosts: 主机
@@ -3304,7 +3351,7 @@ nav:
backupTarget: 备份目标
certificates: 证书
registries: 镜像库
- secrets: 密文
+ secrets: 密文
admin:
tab: 系统管理
audit: 审计日志
@@ -3317,7 +3364,7 @@ nav:
api:
tab: API
keys: 密钥
- hooks: Webhooks
+ hooks: Webhooks
user:
label: '用户菜单:{username}'
logout: 注销
@@ -3338,7 +3385,7 @@ nav:
##############################
# Resource Actions
-##############################
+##############################
action:
activate: 激活
backup: 备份快照
@@ -3349,7 +3396,7 @@ action:
console: 打开控制台
deactivate: 停用
edit: 编辑
- evacuate: 疏散
+ evacuate: 疏散
execute: 执行命令行
exportConfig: 导出配置
finishUpgrade: 升级完成
@@ -3357,7 +3404,7 @@ action:
machineConfig: 主机配置
purge: 清除
remove: 删除
- replay: 重播
+ replay: 重播
restart: 重启
restore: 恢复
retry: 重试
@@ -3373,11 +3420,11 @@ action:
switchNamespace: 切换至此命名空间
switchEnvironment: 切换至此环境
upgrade: 升级
- upgradeOrEdit: 升级/编辑
+ upgradeOrEdit: 升级/编辑
viewConfig: 查看配置
viewGraph: 查看图形
viewInApi: API查看
- viewInstance: 查看实例
+ viewInstance: 查看实例
##############################
# Resource Actions
@@ -3403,7 +3450,7 @@ validation:
##############################
# Model Properties
-##############################
+##############################
model:
account:
kind:
@@ -3413,6 +3460,17 @@ model:
user: 用户
admin: 管理员
project: 环境
+ openldapconfig:
+ server:
+ label: 主机名或IP地址
+ serviceAccountUsername:
+ label: 服务账号用户名
+ serviceAccountPassword:
+ label: 服务账号密码
+ domain:
+ label: '用户搜索起点:'
+ placeholder: "例如: ou=Users,dc=mycompany,dc=com"
+ help: "该搜索起点下仅有用户会被使用。"
identity:
displayType:
user: 用户
@@ -3420,7 +3478,7 @@ model:
group: 组
org: 组织
localUser: 本地用户
- unknown: "{type}?"
+ unknown: "{type}?"
projectMember:
role:
member: 成员
diff --git a/vendor/aws-sdk-ec2.js b/vendor/aws-sdk-ec2.js
index 9d90e1293e..caec3bc127 100644
--- a/vendor/aws-sdk-ec2.js
+++ b/vendor/aws-sdk-ec2.js
@@ -6889,7 +6889,7 @@ function hash(alg, key) {
return {
update: function (data) {
if(!Buffer.isBuffer(data)) data = new Buffer(data)
-
+
bufs.push(data)
length += data.length
return this