osdk.mp4
A web tool for scaffolding Kubernetes operators using the Operator SDK. Create, configure, and generate Kubernetes operators with custom resource definitions (CRDs), controllers, and RBAC permissions.
- Docker
- Go 1.19+ (for local development)
- Node.js 18+ (for local development)
- Operator-SDK CLI tool
-
Clone the repository:
git clone <repository-url> cd OSDK-Web
-
Build the images:
docker build -t osdk-frontend ./frontend
docker build -t osdk-backend ./backend
docker build -t osdk-runner ./operator-sdk-runner-
Deploy:
oc apply -f role.yaml oc apply -f deploy.yaml
-
Make a route at your prefered domain
- Enter your operator's domain (e.g.,
example.com) - Specify the Git repository (e.g.,
github.com/user/my-operator) - Set the project name
- Configure namespace scoping if needed
- Add one or more Custom Resource Definitions
- For each CRD, specify:
- API Group (e.g.,
apps,batch) - Version (e.g.,
v1alpha1,v1beta1) - Kind (e.g.,
MyResource) - Plural name (e.g.,
MyResources)
- API Group (e.g.,
- Add properties to your CRD spec
- Set property types (string, integer, boolean, array, object)
- Add validation rules as needed
- Use the validation editor for complex constraints
- Click "Configure" in the RBAC Permissions section
- Add permissions using presets or custom definitions
- Specify API groups, resources, and verbs
- Click "Configure" in the Webhook Configuration section
- Add admission webhooks (mutating, validating, or conversion)
- Configure webhook settings:
- Type: Choose between mutating, validating, or conversion webhooks
- Path: Custom webhook endpoint path (optional)
- Operations: Select which operations trigger the webhook (CREATE, UPDATE, DELETE)
- Failure Policy: Choose whether to fail or ignore webhook errors
- Side Effects: Specify webhook side effects (None, NoneOnDryRun, Some, Unknown)
- Admission Review Versions: Select supported versions (v1, v1beta1)
- Enable status subresource for CRDs that need status updates
- Toggle controller generation per CRD
- Review the JSON configuration in the right panel
- Click "Generate" to create your operator
- Download the generated ZIP file
- Extract your operator
{
"group": "apps",
"version": "v1alpha1",
"kind": "MyApp",
"plural": "myapps",
"controller": true,
"status": false,
"rbac": [
{
"group": "apps",
"resources": "deployments",
"verbs": "get;list;watch;create;update;patch;delete"
}
],
"properties": [
{
"name": "replicas",
"type": "integer",
"validations": [
{
"type": "minimum",
"value": "1"
}
]
}
],
"webhooks": [
{
"type": "mutating",
"enabled": true,
"path": "/mutate-v1-myapp",
"operations": ["CREATE", "UPDATE"],
"admissionReviewVersions": ["v1"],
"failurePolicy": "Fail",
"sideEffects": "None",
"matchPolicy": "Exact"
}
]
}- Operator SDK - Kubernetes operator development framework
- Kubebuilder - Framework for building Kubernetes APIs
- Monaco Editor - Code editor component
- Web Awesome - UI component library
- Gin - Go web framework