Skip to content

First pass at Operations docs #956

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Aug 8, 2025
Merged

First pass at Operations docs #956

merged 15 commits into from
Aug 8, 2025

Conversation

negz
Copy link
Member

@negz negz commented Aug 6, 2025

First pass at Operations documentation including getting started guide and concept documentation.

I've tested the getting started guide end-to-end in a live cluster and it works perfectly. Here's what I validated:

Test Environment:

  • Kind cluster with Crossplane v0.0.0-hack (development build)
  • Operations feature flag enabled (--enable-operations)
  • function-python v0.2.0

Test Results:
All steps in the getting started guide work as documented:

  1. Created sample Ingress resource
  2. Applied RBAC permissions (ClusterRole properly aggregated to Crossplane)
  3. Installed function-python v0.2.0 (became healthy)
  4. Created and ran the Operation successfully
  5. Operation retrieved google.com SSL certificate and calculated 53 days until expiry
  6. Operation correctly annotated the Ingress with certificate monitoring metadata:
    • cert-monitor.crossplane.io/expires: Sep 29 08:34:02 2025 GMT
    • cert-monitor.crossplane.io/days-until-expiry: "53"
    • cert-monitor.crossplane.io/status: ok
  7. Operation status shows SYNCED=True and SUCCEEDED=True with detailed output
  8. Clean up worked - all resources deleted successfully

The key functionality works correctly: required resource fetching, SSL certificate inspection via Python, resource modification (adding annotations), and operation output for monitoring.

Dependencies

Copy link

netlify bot commented Aug 6, 2025

Deploy Preview for crossplane ready!

Name Link
🔨 Latest commit 1c911d8
🔍 Latest deploy log https://app.netlify.com/projects/crossplane/deploys/68957cd6e380700008e539a9
😎 Deploy Preview https://deploy-preview-956--crossplane.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 67 (🔴 down 6 from production)
Accessibility: 90 (🔴 down 2 from production)
Best Practices: 83 (no change from production)
SEO: 100 (no change from production)
PWA: 70 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@negz negz force-pushed the whats-op-doc branch 8 times, most recently from dabe420 to 78092bc Compare August 7, 2025 01:11
@negz negz marked this pull request as ready for review August 7, 2025 08:07
Copy link
Collaborator

@tr0njavolta tr0njavolta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small rendering change requested, otherwise looks good! Approving to not block

@negz negz force-pushed the whats-op-doc branch 2 times, most recently from 8118d1c to 21bed19 Compare August 7, 2025 20:34
@negz
Copy link
Member Author

negz commented Aug 7, 2025

Gonna hold on merging until crossplane/crossplane#6695 is merged, since this PR documents stuff in that one (namely crossplane alpha render).

Copy link
Member

@jbw976 jbw976 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

awesome @negz! this is really useful content that will be very helpful for users learning about operations and developing them for their control planes 💪

negz added a commit to negz/docs that referenced this pull request Aug 8, 2025
Apply backticks to Kubernetes resource types (Operation, Ingress,
ClusterRole, Job) to follow documentation style conventions
for API objects per Jared's feedback in PR crossplane#956.
negz added a commit to negz/docs that referenced this pull request Aug 8, 2025
Add backticks to all status field names (Conditions, Succeeded,
ValidPipeline, Failures, Pipeline) to match AppliedResourceRefs
per Jared's feedback in PR crossplane#956.
@negz negz force-pushed the whats-op-doc branch 2 times, most recently from b6a7d66 to 00b3296 Compare August 8, 2025 04:12
negz added 8 commits August 7, 2025 21:27
Feels like it belongs here as a top-level tool, despite being alpha.

Signed-off-by: Nic Cope <[email protected]>
Add Test an operation section to Operations concept documentation showing how to
preview Operations locally using the CLI. Follows same pattern as composition
render documentation with usage examples and output format.

Signed-off-by: Nic Cope <[email protected]>
…very

Add critical guidance for WatchOperation functions that request resources
dynamically. Functions must return consistent requirements across iterations
for proper stabilization. Include working example with error handling.

Signed-off-by: Nic Cope <[email protected]>
Change from plain code block to console with disabled line numbers and copy
functionality per docs engineer feedback. Improves visual presentation of the
cron schedule diagram.

Signed-off-by: Nic Cope <[email protected]>
Change alphaVersion from 'v2.0-preview' to '2.0' to avoid
double 'v' rendering in the documentation.

Signed-off-by: Nic Cope <[email protected]>
Apply backticks to Kubernetes resource types (Operation, Ingress,
ClusterRole, Job) to follow documentation style conventions
for API objects per Jared's feedback in PR crossplane#956.

Signed-off-by: Nic Cope <[email protected]>
negz added 7 commits August 7, 2025 21:27
Add backticks to all status field names (Conditions, Succeeded,
ValidPipeline, Failures, Pipeline) to match AppliedResourceRefs
per Jared's feedback in PR crossplane#956.

Signed-off-by: Nic Cope <[email protected]>
Changed 'SSL Monitor Operation API' to 'SSL Monitor Operation' in the
mermaid diagram to prevent text truncation that was showing as
'SSL Monitor Operation AP' in the rendered output.

Signed-off-by: Nic Cope <[email protected]>
Sorted all dictionary files in utils/vale/styles/Crossplane/ alphabetically:
- allowed-jargon.txt
- brands.txt
- crossplane-words.txt
- provider-words.txt
- spelling-exceptions.txt

This removes duplicate entries and ensures consistent ordering for
easier maintenance and Vale linting compliance.

Signed-off-by: Nic Cope <[email protected]>
Added a new troubleshooting item to operation.md documenting the common
error when Operations feature is not enabled and how to resolve it by
adding the --enable-operations flag to Crossplane's startup arguments.

Updated numbering for subsequent troubleshooting items accordingly.

Signed-off-by: Nic Cope <[email protected]>
Updated status field names in operation.md to match actual YAML
capitalization: conditions, failures, pipeline, appliedResourceRefs
instead of the capitalized versions.

Signed-off-by: Nic Cope <[email protected]>
Fixed Vale linter disable comment that was interrupting the ordered list
in the "Event handling" section of watchoperation.md. Moved the Vale
disable comments to wrap around the entire list instead of interrupting
it, which resolves the ordering numbering reset issue.

Signed-off-by: Nic Cope <[email protected]>
Added introductory sentence before Operations diagram to match the pattern
used for other diagrams. Explains the SSL certificate monitoring scenario
that the diagram illustrates, connecting the use case to the visual representation.

Signed-off-by: Nic Cope <[email protected]>
@negz negz merged commit 704d5df into crossplane:master Aug 8, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants