Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
7d02f65
add CRDs
maciaszczykm Feb 13, 2026
911fcf1
add attributes methods
maciaszczykm Feb 13, 2026
cd317bf
update agent runtime field in workbench and workbench tool definitions
maciaszczykm Feb 13, 2026
89b7fa5
add attributes methods
maciaszczykm Feb 13, 2026
873bcc2
add workbench tool management methods to client
maciaszczykm Feb 16, 2026
042ca3b
fix queries
maciaszczykm Feb 16, 2026
036792c
fix client
maciaszczykm Feb 16, 2026
3ba9e9c
add client methods
maciaszczykm Feb 16, 2026
971e641
add workbench tool reconciler controller
maciaszczykm Feb 16, 2026
ce1281a
register reconciler in controller and define its type
maciaszczykm Feb 16, 2026
3ea24e1
add workbench tool controller test
maciaszczykm Feb 16, 2026
f747bbb
run codegen
maciaszczykm Feb 16, 2026
76b55f5
add workbench client methods
maciaszczykm Feb 16, 2026
15610da
change workbench resource scope to Namespaced
maciaszczykm Feb 16, 2026
6dd4db5
add workbench mock methods and rbac rules
maciaszczykm Feb 16, 2026
1000a94
init workbench reconciler controller
maciaszczykm Feb 16, 2026
63e67e7
add workbench repository and agent runtime support
maciaszczykm Feb 16, 2026
7de9758
add workbench tools support to reconciler
maciaszczykm Feb 16, 2026
1c00b1d
add workbench controller test and refactor repository handling
maciaszczykm Feb 16, 2026
52d6d10
add workbench tool resources to controller test
maciaszczykm Feb 16, 2026
7b1b9f6
add workbench sample resources
maciaszczykm Feb 16, 2026
3f640ae
refactor namespace handling in workbench controller for repository an…
maciaszczykm Feb 16, 2026
3e4e320
fix namespace resolution in workbench controller for repository refer…
maciaszczykm Feb 16, 2026
ca6073d
add workbench tool ownership and watch support
maciaszczykm Feb 16, 2026
5c9363c
fix error message in workbench controller
maciaszczykm Feb 16, 2026
303b06b
refactor namespace resolution for tool references
maciaszczykm Feb 16, 2026
229c663
add workbench reconciler registration to controller
maciaszczykm Feb 16, 2026
4fd39dd
Merge remote-tracking branch 'origin/master' into marcin/prod-4432-wo…
maciaszczykm Feb 18, 2026
dd5337b
run codegen
maciaszczykm Feb 18, 2026
2046d9c
make input schema required
maciaszczykm Feb 18, 2026
198d0b6
attempt to add agent runtime lookup by name
maciaszczykm Feb 18, 2026
d8b66ce
revert attempt to add agent runtime lookup by name
maciaszczykm Feb 18, 2026
da72880
update controller chart with inputSchema requirement
maciaszczykm Feb 18, 2026
6346cdc
Merge remote-tracking branch 'origin/master' into marcin/prod-4432-wo…
maciaszczykm Feb 18, 2026
0d8c0b6
add clusterId to GetAgentRuntimeByName query
maciaszczykm Feb 18, 2026
03068f8
update workbench sample agentRuntime ref
maciaszczykm Feb 18, 2026
12c0f0c
update workbench tests with cluster handle
maciaszczykm Feb 18, 2026
d596b6b
remove omitempty from required fields
maciaszczykm Feb 18, 2026
ec90c69
restore make test
maciaszczykm Feb 18, 2026
fde895b
add blank line before .PHONY in Makefile
maciaszczykm Feb 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified charts/console-rapid/charts/controller-0.0.169.tgz
Binary file not shown.
Binary file modified charts/console-rapid/charts/kas-0.3.1.tgz
Binary file not shown.
Binary file modified charts/console/charts/controller-0.0.169.tgz
Binary file not shown.
Binary file modified charts/console/charts/kas-0.3.1.tgz
Binary file not shown.
378 changes: 378 additions & 0 deletions charts/controller/crds/deployments.plural.sh_workbenches.yaml

Large diffs are not rendered by default.

270 changes: 270 additions & 0 deletions charts/controller/crds/deployments.plural.sh_workbenchtools.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
name: workbenchtools.deployments.plural.sh
spec:
group: deployments.plural.sh
names:
kind: WorkbenchTool
listKind: WorkbenchToolList
plural: workbenchtools
singular: workbenchtool
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: ID of the WorkbenchTool in the Console API.
jsonPath: .status.id
name: ID
type: string
- description: Type of tool.
jsonPath: .spec.tool
name: Tool
type: string
- description: Flag indicating if the object is read-only
jsonPath: .status.readonly
name: READONLY
type: boolean
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
WorkbenchTool represents a tool that can be attached to a Workbench (e.g. HTTP tool).
Tools are defined once and can be associated with multiple workbenches.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: Spec defines the desired state of the WorkbenchTool.
properties:
categories:
description: Categories for the tool (e.g. METRICS, LOGS, INTEGRATION).
items:
type: string
type: array
configuration:
description: Configuration is the tool-specific configuration (e.g.
HTTP).
properties:
http:
description: HTTP tool configuration.
properties:
body:
description: Body is the optional request body.
type: string
headers:
description: Headers are optional request headers.
items:
description: WorkbenchToolHTTPHeader represents a single
HTTP header.
properties:
name:
description: Name is the header name.
type: string
value:
description: Value is the header value.
type: string
type: object
type: array
inputSchema:
description: InputSchema is the JSON schema for the tool input
(arbitrary JSON).
type: object
x-kubernetes-preserve-unknown-fields: true
method:
description: Method is the HTTP method (GET, POST, PUT, DELETE,
PATCH).
enum:
- GET
- POST
- PUT
- DELETE
- PATCH
type: string
url:
description: URL is the request URL.
format: uri
type: string
required:
- inputSchema
- method
- url
type: object
type: object
name:
description: Name of the tool. If not set, metadata.name is used.
pattern: ^[a-z0-9_]+$
type: string
projectRef:
description: ProjectRef references the project this tool belongs to.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: |-
If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
type: string
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
resourceVersion:
description: |-
Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string
uid:
description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string
type: object
x-kubernetes-map-type: atomic
reconciliation:
description: Reconciliation settings for this resource.
properties:
driftDetection:
default: true
description: |-
DriftDetection enables drift detection for this resource.
It is destined to detect changes made to the related
resources that are not referenced with owner ref.
Use with Interval to set how often drift detection runs.
example: false
type: boolean
interval:
default: 30m
description: |-
Interval for the drift detection mechanism.
It is subject to jitter to avoid the thundering herd problem,
it is calculated as a random value between 50% and 150% of the given duration.
example: 5m30s
type: string
type: object
tool:
description: Tool type (e.g. HTTP).
enum:
- HTTP
type: string
required:
- tool
type: object
status:
description: Status represents the current state of this resource.
properties:
conditions:
description: Represents the observations of a PrAutomation's current
state.
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
id:
description: ID of the resource in the Console API.
type: string
readonly:
default: false
description: ReadOnly indicates whether the resource is read-only.
type: boolean
sha:
description: SHA of last applied configuration.
type: string
required:
- readonly
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
Loading
Loading