diff --git a/lib/k8s/configs/backup-secret.yml b/lib/k8s/configs/backup-secret.yml
new file mode 100644
index 0000000..eae59e3
--- /dev/null
+++ b/lib/k8s/configs/backup-secret.yml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ annotations:
+ minecluster.dunemask.net/id: changeme-server-id
+ labels:
+ app: changeme-app-label
+ name: changeme-backup-secret
+type: Opaque
+data:
+ rclone.conf: ""
diff --git a/src/components/server-options/BackupBucketOption.jsx b/src/components/server-options/BackupBucketOption.jsx
new file mode 100644
index 0000000..30a1705
--- /dev/null
+++ b/src/components/server-options/BackupBucketOption.jsx
@@ -0,0 +1,14 @@
+import TextField from "@mui/material/TextField";
+export default function BackupBucketOption(props) {
+ const { onChange } = props;
+
+ return (
+
+ );
+}
diff --git a/src/components/server-options/BackupHostOption.jsx b/src/components/server-options/BackupHostOption.jsx
new file mode 100644
index 0000000..0730893
--- /dev/null
+++ b/src/components/server-options/BackupHostOption.jsx
@@ -0,0 +1,14 @@
+import TextField from "@mui/material/TextField";
+export default function BackupHostOption(props) {
+ const { onChange } = props;
+
+ return (
+
+ );
+}
diff --git a/src/components/server-options/BackupIdOption.jsx b/src/components/server-options/BackupIdOption.jsx
new file mode 100644
index 0000000..e36ccff
--- /dev/null
+++ b/src/components/server-options/BackupIdOption.jsx
@@ -0,0 +1,14 @@
+import TextField from "@mui/material/TextField";
+export default function BackupIdOption(props) {
+ const { onChange } = props;
+
+ return (
+
+ );
+}
diff --git a/src/components/server-options/BackupKeyOption.jsx b/src/components/server-options/BackupKeyOption.jsx
new file mode 100644
index 0000000..aa966ff
--- /dev/null
+++ b/src/components/server-options/BackupKeyOption.jsx
@@ -0,0 +1,14 @@
+import TextField from "@mui/material/TextField";
+export default function BackupKeyOption(props) {
+ const { onChange } = props;
+
+ return (
+
+ );
+}
diff --git a/src/pages/CreateCoreOptions.jsx b/src/pages/CreateCoreOptions.jsx
index 747712a..95f1b34 100644
--- a/src/pages/CreateCoreOptions.jsx
+++ b/src/pages/CreateCoreOptions.jsx
@@ -3,6 +3,9 @@ import { useNavigate } from "react-router-dom";
import Box from "@mui/material/Box";
import Button from "@mui/material/Button";
import FormControl from "@mui/material/FormControl";
+import FormControlLabel from "@mui/material/FormControlLabel";
+import Switch from "@mui/material/Switch";
+import Typography from "@mui/material/Typography";
import { useCreateServer } from "@mcl/queries";
// Core Options
@@ -19,6 +22,11 @@ import MemoryOption, {
memoryOptions,
} from "@mcl/components/server-options/MemoryOption.jsx";
+import BackupHostOption from "@mcl/components/server-options/BackupHostOption.jsx";
+import BackupBucketOption from "@mcl/components/server-options/BackupBucketOption.jsx";
+import BackupIdOption from "@mcl/components/server-options/BackupIdOption.jsx";
+import BackupKeyOption from "@mcl/components/server-options/BackupKeyOption.jsx";
+
const defaultServer = {
version: "latest",
serverType: serverTypeOptions[0],
@@ -27,6 +35,7 @@ const defaultServer = {
};
export default function CreateCoreOptions() {
+ const [backupEnabled, setBackupEnabled] = useState(false);
const [spec, setSpec] = useState(defaultServer);
const nav = useNavigate();
const createServer = useCreateServer(spec);
@@ -58,6 +67,8 @@ export default function CreateCoreOptions() {
alert(`Could not validate spec because: ${reason}`);
}
+ const toggleBackupEnabled = () => setBackupEnabled(!backupEnabled);
+
return (
+
+ }
+ label="Enable Backups?"
+ labelPlacement="start"
+ sx={{ mr: "auto" }}
+ />
+ {backupEnabled && (
+
+ Backups
+
+
+
+
+
+ )}
+