Warning
Attention Users: This project is in active development, and certain tools or features might still be under construction. We kindly urge you to exercise caution while utilizing the tools within this environment. While every effort is being made to ensure the stability and reliability of the project, there could be unexpected behaviors or limited functionalities in some areas. We highly recommend thoroughly testing the project in non-production or sandbox environments before implementing it in critical or production systems. Your feedback is invaluable to us; if you encounter any issues or have suggestions for improvement, please feel free to report them. Your input helps us enhance the project's performance and user experience. Thank you for your understanding and cooperation.
Important
Velero-UI project is part of a project consisting of three modules:
- Velero-API
- Velero-UI
- Velero-Watchdog
This project was created to simplify through a user interface some velero backup operations.
Some screenshots:
- dashboard
- login
- backups
- create new backup
- create restore
- schedule
- create schedule
- backup location
- storage location
- repo
- storage class map
- backup describe
- backup logs
- configuration
- watchdog configuration
- cron schedule heatmap
Intuitive usability
Real-time dashboard and monitoring
Backups management
Restores management
Schedules management
Storage class map
Restic features (check locks, unlock, unlock --remove-all)
Multi cluster (Experimental feature)
see changelog for details.
FIELD | TYPE | DEFAULT | DESCRIPTION |
---|---|---|---|
NEXT_PUBLIC_REFRESH_DATATABLE_AFTER | Number | 1500 | Milliseconds delay for datatable update after each operation. |
NEXT_PUBLIC_REFRESH_RECENT | Number | 5000 | Polling task in progress updates in milliseconds. |
NEXT_PUBLIC_VELERO_API_NAME | String | Name for cluster | |
NEXT_PUBLIC_VELERO_API_URL | String | http://127.0.0.1:8001 | Url to http velero-api project |
NEXT_PUBLIC_VELERO_API_WS | String | ws://127.0.0.1:8001 | Url to ws velero-api project |
NEXT_PUBLIC_LOGIN_CLUSTERS_SWITCH | Bool | false | EXPERIMENTAL: Displays or hides the cluster selection menu on the login page. |
NEXT_PUBLIC_VELERO_API_NAME_1 | String | EXPERIMENTAL: Name for cluster 1 | |
NEXT_PUBLIC_VELERO_API_URL_1 | String | EXPERIMENTAL: Url to http velero-api project | |
NEXT_PUBLIC_VELERO_API_WS_1 | String | EXPERIMENTAL: Url to ws velero-api project | |
NEXT_PUBLIC_VELERO_API_NAME_2 | String | EXPERIMENTAL: Name for cluster 2 | |
NEXT_PUBLIC_VELERO_API_URL_2 | String | EXPERIMENTAL: Url to http velero-api project | |
NEXT_PUBLIC_VELERO_API_WS_2 | String | EXPERIMENTAL: Url to ws velero-api project |
Clone the repository:
git clone https://github.com/seriohub/velero-ui.git
cd velero-ui
- Nodejs
- YARN
Navigate to the src folder
Dependencies installation:
yarn
Run development
yarn run dev
See helm readme
Setup docker image:
[!INFO]
You can use skip the Setup docker image and use a deployed image published on DockerHub.
Docker hub: https://hub.docker.com/r/dserio83/velero-uiNavigate to the root folder
Build image
docker build --target velero-ui -t <your-register>/<your-user>/velero-ui:<tag> -f ./docker/Dockerfile .
Push image
docker push <your-register>/<your-user>/velero-ui --all-tags
[!INFO]
In case you run the custom build of the image and use the files inside the k8s folder to deploy to kubernetes, remember to update in the 20_deployment.yaml file with references for the built image
Kubernetes create objects
Navigate to the k8s folder
Create namespace (If it does not exist, the namespace should already be created if you have installed the Velero API):
kubectl create ns velero-ui
Create the ConfigMap:
[!WARNING]
Set the parameters in the 10_config_map.yaml file before applying it according to your environment.
You need to set NEXT_PUBLIC_VELERO_API_URL and NEXT_PUBLIC_VELERO_API_WS to the port of the Velero API service.kubectl apply -f 10_config_map.yaml -n velero-ui
Create the deployment:
kubectl apply -f 20_deployment.yaml -n velero-ui
Create the service:
[!WARNING]
Customizes the 30_service_lb.yaml or 30_service_nodeport.yaml file before applying it according to your environment.kubectl apply -f 30_service_lb.yaml -n velero-ui
or
kubectl apply -f 30_service_nodeport.yaml -n velero-ui
The project is developed, tested and put into production on several clusters with the following configuration
- Kubernetes v1.28.2
- Velero Server 1.11.1/Client v1.11.1
- Velero Server 1.12.1/Client v1.12.1
Fork the project
Create your feature branch
git checkout -b feature/new-feature
Commit your changes
git commit -m 'Add new feature'
Push to the branch
git push origin feature/new-feature
Create a new pull request
This project is licensed under the Apache 2.0 license.
Feel free to modify this template according to your project's specific requirements.
In case you need more functionality, create a PR. If you find a bug, open a ticket.
Tidak ada komentar:
Posting Komentar