Skip to content

Commit

Permalink
fix: Send the 'add wireguard access' to the deployment:
Browse files Browse the repository at this point in the history
- Infared the type of the name in the validator to avoid typescript errors
- Send the value of the 'wireguard' to the deployment
- Enable Mycelium option by defualt
- Added the wireguard option to the K8S deployment
  • Loading branch information
Mahmoud-Emad committed Aug 12, 2024
1 parent db8a189 commit 4638ad8
Show file tree
Hide file tree
Showing 25 changed files with 81 additions and 66 deletions.
6 changes: 4 additions & 2 deletions packages/playground/src/components/k8s_worker.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
:rules="[
validators.required('Name is required.'),
validators.isLowercase('Name should consist of lowercase letters only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.isAlphanumeric('Name should consist of alphabets & numbers only.'),
validators.minLength('Name minimum length is 2 chars.', 2),
validators.maxLength('Name max length is 50 chars.', 50),
Expand Down Expand Up @@ -67,6 +67,7 @@
v-model:ipv6="$props.modelValue.ipv6"
v-model:planetary="$props.modelValue.planetary"
v-model:mycelium="$props.modelValue.mycelium"
v-model:wireguard="$props.modelValue.wireguard"
/>

<RootFsSize
Expand Down Expand Up @@ -130,8 +131,9 @@ export function createWorker(name: string = generateName({ prefix: "wr" })): K8S
diskSize: 100,
ipv4: false,
ipv6: false,
planetary: true,
planetary: false,
mycelium: true,
wireguard: false,
rootFsSize: 2,
dedicated: false,
certified: false,
Expand Down
1 change: 1 addition & 0 deletions packages/playground/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export interface K8SWorker {
ipv6: boolean;
planetary: boolean;
mycelium: boolean;
wireguard: boolean;
rootFsSize: number;
rentedBy?: number;
dedicated: boolean;
Expand Down
2 changes: 1 addition & 1 deletion packages/playground/src/utils/deploy_k8s.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export async function deployK8s(grid: GridClient, options: DeployK8SOptions) {
Promise.all(options.workers.map(worker => createWorker(worker))),
]);

k8s.network = createNetwork({ addAccess: true });
k8s.network = createNetwork({ addAccess: options.master.wireguard });
k8s.masters = [workers[0]];
k8s.workers = workers[1];
k8s.metadata = options.metadata;
Expand Down
4 changes: 2 additions & 2 deletions packages/playground/src/weblets/freeflow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ const ipv4 = ref(false);
const ipv6 = ref(false);
const wireguard = ref(false);
const planetary = ref(false);
const mycelium = ref(false);
const mycelium = ref(true);
const rootFilesystemSize = computed(() =>
calculateRootFileSystem({ CPUCores: solution.value?.cpu ?? 0, RAMInMegaBytes: solution.value?.memory ?? 0 }),
);
Expand Down Expand Up @@ -162,7 +162,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: threebotName.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value!.domain!.selectedDomain?.nodeId,
},
machines: [
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/full_vm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -102,7 +102,7 @@
:value="disks[index].name"
:rules="[
validators.required('Disk name is required.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Disk minLength is 2 chars.', 2),
validators.isAlphanumeric('Disk name only accepts alphanumeric chars.'),
validators.maxLength('Disk maxLength is 50 chars.', 50),
Expand Down Expand Up @@ -190,7 +190,7 @@ const name = ref(generateName({ prefix: "vm" }));
const flist = ref<Flist>();
const ipv4 = ref(false);
const ipv6 = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const wireguard = ref(false);
const dedicated = ref(false);
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/micro_vm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -91,7 +91,7 @@
:value="envs[index].key"
:rules="[
validators.required('Key name is required.'),
key => validators.isAlpha('Key must start with alphabet char.')(key[0]),
(key: string) => validators.isAlpha('Key must start with alphabet char.')(key[0]),
validators.pattern('Invalid key format.', { pattern: /^[^0-9_\s][a-zA-Z0-9_]+$/ }),
validators.maxLength('Key max length is 128 chars.', 128),
]"
Expand Down Expand Up @@ -240,7 +240,7 @@ const name = ref(generateName({ prefix: "vm" }));
const flist = ref<Flist>();
const ipv4 = ref(false);
const ipv6 = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const wireguard = ref(false);
const envs = ref<Env[]>([]);
Expand Down
7 changes: 5 additions & 2 deletions packages/playground/src/weblets/tf_algorand.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -129,7 +129,7 @@ const name = ref(generateName({ prefix: "al" }));
const ipv4 = ref(false);
const ipv6 = ref(false);
const wireguard = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const cpu = ref() as Ref<number>;
const memory = ref() as Ref<number>;
Expand Down Expand Up @@ -161,6 +161,9 @@ async function deploy() {
const vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: wireguard.value,
},
machines: [
{
name: name.value,
Expand Down
4 changes: 2 additions & 2 deletions packages/playground/src/weblets/tf_casperlabs.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -147,7 +147,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value?.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/tf_discourse.vue
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -132,7 +132,7 @@ const ipv4 = ref(true);
const ipv6 = ref(false);
const wireguard = ref(false);
const mycelium = ref(true);
const planetary = ref(true);
const planetary = ref(false);
const smtp = ref(createSMTPServer());
const dedicated = ref(false);
const certified = ref(false);
Expand Down Expand Up @@ -179,7 +179,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value?.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/tf_funkwhale.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand All @@ -35,7 +35,7 @@
validators.required('Username is required.'),
validators.isLowercase('Username should consist of lowercase letters only.'),
validators.isAlphanumeric('Username should consist of letters and numbers only.'),
username => validators.isAlpha('Username must start with alphabet char.')(username[0]),
(username: string) => validators.isAlpha('Username must start with alphabet char.')(username[0]),
validators.minLength('Username must be at least 2 characters.', 2),
validators.maxLength('Username cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -200,7 +200,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value?.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/tf_gitea.vue
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
validators.required('Name is required.'),
validators.isLowercase('Name should consist of lowercase letters only.'),
validators.isAlphanumeric('Name should consist of alphabets & numbers only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 15 characters.', 15),
]"
Expand Down Expand Up @@ -111,7 +111,7 @@ const name = ref(generateName({ prefix: "gt" }));
const ipv4 = ref(false);
const ipv6 = ref(false);
const wireguard = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const disks = ref<Disk[]>([]);
const dedicated = ref(false);
Expand Down Expand Up @@ -168,7 +168,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value!.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
2 changes: 1 addition & 1 deletion packages/playground/src/weblets/tf_kubernetes.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
:value="name"
:rules="[
validators.required('Name is required.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
validators.minLength('Name minimum length is 2 chars.', 2),
validators.maxLength('Name max length is 50 chars.', 50),
Expand Down
8 changes: 4 additions & 4 deletions packages/playground/src/weblets/tf_mattermost.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -114,13 +114,13 @@ const certified = ref(false);
const ipv4 = ref(false);
const ipv6 = ref(false);
const wireguard = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const smtp = ref(createSMTPServer());
const rootFilesystemSize = computed(() =>
calculateRootFileSystem({ CPUCores: solution.value?.cpu ?? 0, RAMInMegaBytes: solution.value?.memory ?? 0 }),
);
const selectionDetails = ref<SelectionDetails>();
const mycelium = ref(true);
const selectedSSHKeys = ref("");
const gridStore = useGrid();
const grid = gridStore.client as GridClient;
Expand Down Expand Up @@ -157,7 +157,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value?.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
4 changes: 2 additions & 2 deletions packages/playground/src/weblets/tf_nextcloud.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -152,7 +152,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value?.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/tf_node_pilot.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 15 characters.', 15),
]"
Expand Down Expand Up @@ -95,7 +95,7 @@ const flist: Flist = {
const ipv4 = ref(false);
const ipv6 = ref(false);
const wireguard = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const dedicated = ref(false);
const certified = ref(false);
Expand Down Expand Up @@ -136,7 +136,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value!.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
6 changes: 3 additions & 3 deletions packages/playground/src/weblets/tf_nostr.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
:rules="[
validators.required('Name is required.'),
validators.IsAlphanumericExpectUnderscore('Name should consist of letters ,numbers and underscores only.'),
name => validators.isAlpha('Name must start with alphabet char.')(name[0]),
(name: string) => validators.isAlpha('Name must start with alphabet char.')(name[0]),
validators.minLength('Name must be at least 2 characters.', 2),
validators.maxLength('Name cannot exceed 50 characters.', 50),
]"
Expand Down Expand Up @@ -99,7 +99,7 @@ const name = ref(generateName({ prefix: "nt" }));
const ipv4 = ref(false);
const ipv6 = ref(false);
const wireguard = ref(false);
const planetary = ref(true);
const planetary = ref(false);
const mycelium = ref(true);
const disks = ref<Disk[]>([]);
const dedicated = ref(false);
Expand Down Expand Up @@ -141,7 +141,7 @@ async function deploy() {
vm = await deployVM(grid!, {
name: name.value,
network: {
addAccess: selectionDetails.value!.domain!.enableSelectedDomain,
addAccess: wireguard.value || selectionDetails.value!.domain!.enableSelectedDomain,
accessNodeId: selectionDetails.value?.domain?.selectedDomain?.nodeId,
},
machines: [
Expand Down
Loading

0 comments on commit 4638ad8

Please sign in to comment.