diff --git a/ui/src/config/section/network.js b/ui/src/config/section/network.js
index ae1f8ddc0bf..b85fe362c84 100644
--- a/ui/src/config/section/network.js
+++ b/ui/src/config/section/network.js
@@ -312,15 +312,23 @@ export default {
icon: 'lock',
permission: ['listVpnCustomerGateways'],
resourceType: 'VpnGateway',
- columns: ['name', 'ipaddress', 'gateway', 'cidrlist', 'ipsecpsk', 'account', 'domain'],
- details: ['name', 'id', 'ipaddress', 'gateway', 'cidrlist', 'ipsecpsk', 'account', 'domain'],
+ columns: ['name', 'gateway', 'cidrlist', 'ipsecpsk', 'account', 'domain'],
+ details: ['name', 'id', 'gateway', 'cidrlist', 'ipsecpsk', 'ikepolicy', 'ikelifetime', 'esppolicy', 'esplifetime', 'dpd', 'forceencap', 'account', 'domain'],
actions: [
{
api: 'createVpnCustomerGateway',
icon: 'plus',
label: 'Add VPN Customer Gateway',
listView: true,
- args: ['name', 'gateway', 'cidrlist', 'ipsecpsk', 'ikelifetime', 'esplifetime', 'dpd', 'forceencap', 'ikepolicy', 'esppolicy']
+ popup: true,
+ component: () => import('@/views/network/CreateVpnCustomerGateway.vue')
+ },
+ {
+ api: 'updateVpnCustomerGateway',
+ icon: 'edit',
+ label: 'Edit VPN Customer Gateway',
+ dataView: true,
+ args: ['name', 'gateway', 'cidrlist', 'ipsecpsk', 'ikepolicy', 'ikelifetime', 'esppolicy', 'esplifetime', 'dpd', 'forceencap']
},
{
api: 'deleteVpnCustomerGateway',
diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json
index 8691b102b7f..04dbfbbe466 100644
--- a/ui/src/locales/en.json
+++ b/ui/src/locales/en.json
@@ -64,6 +64,7 @@
"aclname": "ACL Name",
"action": "Action",
"activeviewersessions": "Active Sessions",
+"add": "Add",
"add-scaleDowncondition": "Add",
"add-scaleUpcondition": "Add",
"address": "Address",
@@ -961,6 +962,12 @@
"vpcname": "VPC",
"vpcoffering": "VPC Offering",
"vpncustomergatewayid": "VPN Customer Gateway",
+"vpncustomergatewayname": "Unique name for VPN customer gateway",
+"vpncustomergateway": "IP address of the remote gateway",
+"vpncustomergateway_cidrlist": "Comma separated guest CIDR list of the remote subnets.",
+"vpncustomergateway_secretkey": "Enter a secret key value",
+"vpncustomergateway_ikelifetime": "phase-1 lifetime of the security association in seconds",
+"vpncustomergateway_esplifetime": "The phase-2 lifetime of the security association in seconds",
"vsmctrlvlanid": "Control VLAN ID",
"vsmdeviceid": "Name",
"vsmdevicestate": "State",
diff --git a/ui/src/views/network/CreateVpnCustomerGateway.vue b/ui/src/views/network/CreateVpnCustomerGateway.vue
new file mode 100644
index 00000000000..93c316f451c
--- /dev/null
+++ b/ui/src/views/network/CreateVpnCustomerGateway.vue
@@ -0,0 +1,325 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+