Skip to content

Commit 8a1c638

Browse files
committed
docs: update README with project overview, features, installation instructions, and usage examples; add logo image
1 parent 481085d commit 8a1c638

2 files changed

Lines changed: 61 additions & 112 deletions

File tree

README.md

Lines changed: 61 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,84 @@
1-
# kubefold
2-
// TODO(user): Add simple overview of use/purpose
1+
<div align="center">
2+
<img src="assets/logo.png" alt="Kubefold Logo" />
3+
</div>
34

4-
## Description
5-
// TODO(user): An in-depth paragraph about your project and overview of use
5+
# 🧬 Kubefold
66

7-
## Getting Started
7+
Kubefold is a Kubernetes operator for managing protein structure prediction workflows. It provides a declarative way to handle protein databases and run conformation predictions in a Kubernetes cluster.
88

9-
### Prerequisites
10-
- go version v1.23.0+
11-
- docker version 17.03+.
12-
- kubectl version v1.11.3+.
13-
- Access to a Kubernetes v1.11.3+ cluster.
9+
## 🚀 Features
1410

15-
### To Deploy on the cluster
16-
**Build and push your image to the location specified by `IMG`:**
11+
- **Protein Database Management** - Download and manage various protein databases (UniProt, PDB, BFD, etc.)
12+
- **Conformation Prediction** - Run protein structure predictions with configurable parameters
13+
- **Cloud Integration** - Store results in S3 and receive notifications via SMS
14+
- **Scalable Architecture** - Built on Kubernetes for horizontal scaling and resource management
1715

18-
```sh
19-
make docker-build docker-push IMG=<some-registry>/kubefold:tag
20-
```
21-
22-
**NOTE:** This image ought to be published in the personal registry you specified.
23-
And it is required to have access to pull the image from the working environment.
24-
Make sure you have the proper permission to the registry if the above commands don’t work.
25-
26-
**Install the CRDs into the cluster:**
27-
28-
```sh
29-
make install
30-
```
31-
32-
**Deploy the Manager to the cluster with the image specified by `IMG`:**
33-
34-
```sh
35-
make deploy IMG=<some-registry>/kubefold:tag
36-
```
37-
38-
> **NOTE**: If you encounter RBAC errors, you may need to grant yourself cluster-admin
39-
privileges or be logged in as admin.
40-
41-
**Create instances of your solution**
42-
You can apply the samples (examples) from the config/sample:
43-
44-
```sh
45-
kubectl apply -k config/samples/
46-
```
47-
48-
>**NOTE**: Ensure that the samples has default values to test it out.
49-
50-
### To Uninstall
51-
**Delete the instances (CRs) from the cluster:**
52-
53-
```sh
54-
kubectl delete -k config/samples/
55-
```
16+
## 📋 Prerequisites
5617

57-
**Delete the APIs(CRDs) from the cluster:**
18+
- Kubernetes cluster (v1.11.3+)
19+
- kubectl (v1.11.3+)
20+
- Access to an S3 bucket for storing results
21+
- AWS credentials for S3 and SMS notifications (if using these features)
5822

59-
```sh
60-
make uninstall
61-
```
62-
63-
**UnDeploy the controller from the cluster:**
23+
## 🛠️ Installation
6424

6525
```sh
66-
make undeploy
26+
kubectl apply -f https://raw.githubusercontent.com/kubefold/operator/main/dist/install.yaml
6727
```
6828

69-
## Project Distribution
70-
71-
Following the options to release and provide this solution to the users.
29+
## 📝 Usage
7230

73-
### By providing a bundle with all YAML files
31+
### Protein Database
7432

75-
1. Build the installer for the image built and published in the registry:
33+
Create a ProteinDatabase resource to download and manage protein databases:
7634

77-
```sh
78-
make build-installer IMG=<some-registry>/kubefold:tag
35+
```yaml
36+
apiVersion: data.kubefold.io/v1
37+
kind: ProteinDatabase
38+
metadata:
39+
name: my-database
40+
spec:
41+
datasets:
42+
uniprot: true
43+
pdb: true
44+
volume:
45+
storageClassName: fsx-sc
7946
```
8047
81-
**NOTE:** The makefile target mentioned above generates an 'install.yaml'
82-
file in the dist directory. This file contains all the resources built
83-
with Kustomize, which are necessary to install this project without its
84-
dependencies.
85-
86-
2. Using the installer
87-
88-
Users can just run 'kubectl apply -f <URL for YAML BUNDLE>' to install
89-
the project, i.e.:
90-
91-
```sh
92-
kubectl apply -f https://raw.githubusercontent.com/<org>/kubefold/<tag or branch>/dist/install.yaml
48+
### Protein Conformation Prediction
49+
50+
Run a protein structure prediction:
51+
52+
```yaml
53+
apiVersion: data.kubefold.io/v1
54+
kind: ProteinConformationPrediction
55+
metadata:
56+
name: my-prediction
57+
spec:
58+
database: my-database
59+
protein:
60+
id: ['A']
61+
sequence: "YOUR_PROTEIN_SEQUENCE"
62+
model:
63+
volume:
64+
storageClassName: fsx-sc
65+
weights:
66+
http: "https://your-model-weights.bin.zst"
67+
destination:
68+
s3:
69+
bucket: your-bucket
70+
region: your-region
71+
notify:
72+
region: your-region
73+
sms:
74+
- "+1234567890"
9375
```
9476
95-
### By providing a Helm Chart
77+
## 🧹 Cleanup
9678
97-
1. Build the chart using the optional helm plugin
79+
To uninstall the operator:
9880
9981
```sh
100-
kubebuilder edit --plugins=helm/v1-alpha
82+
kubectl delete -f https://raw.githubusercontent.com/kubefold/operator/main/dist/install.yaml
10183
```
10284

103-
2. See that a chart was generated under 'dist/chart', and users
104-
can obtain this solution from there.
105-
106-
**NOTE:** If you change the project, you need to update the Helm Chart
107-
using the same command above to sync the latest changes. Furthermore,
108-
if you create webhooks, you need to use the above command with
109-
the '--force' flag and manually ensure that any custom configuration
110-
previously added to 'dist/chart/values.yaml' or 'dist/chart/manager/manager.yaml'
111-
is manually re-applied afterwards.
112-
113-
## Contributing
114-
// TODO(user): Add detailed information on how you would like others to contribute to this project
115-
116-
**NOTE:** Run `make help` for more information on all potential `make` targets
117-
118-
More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html)
119-
120-
## License
121-
122-
Copyright 2025 Mateusz Woźniak <wozniakmat@student.agh.edu.pl>.
123-
124-
Licensed under the Apache License, Version 2.0 (the "License");
125-
you may not use this file except in compliance with the License.
126-
You may obtain a copy of the License at
127-
128-
http://www.apache.org/licenses/LICENSE-2.0
129-
130-
Unless required by applicable law or agreed to in writing, software
131-
distributed under the License is distributed on an "AS IS" BASIS,
132-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133-
See the License for the specific language governing permissions and
134-
limitations under the License.
135-

assets/logo.png

1.39 MB
Loading

0 commit comments

Comments
 (0)