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 + + + + + + )} +