website-and-documentation/content/en/docs-old/decisions/0001-pipeline-tools.md

127 lines
4.8 KiB
Markdown
Raw Normal View History

2024-11-13 09:28:56 +01:00
# CI/CD pipeline tools for composable pipeline
## Context and Problem Statement
In order to build a composable pipeline that provides a golden path and reusable components, we need to define the tools that will be used to execute the pipeline.
ArgoCD is considered set in stone as the tool to manage the deployment of applications. However, the tools to compose and execute the pipeline are still up for debate.
> Note: The pipeline will use many other tools to perform certain actions such as testing, building, and deploying. This ADR is focused on the tools that will be used to compose and execute the pipeline itself.
2024-11-18 16:07:50 +01:00
In general, there are 2 decisions to make:
2024-11-13 09:28:56 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* What tools should we use to execute the pipeline?
* What tools should we use to compose the pipeline?
2024-11-13 09:28:56 +01:00
2024-11-18 16:07:50 +01:00
The following use-cases should be considered for this decision:
2024-11-13 09:28:56 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* **User who wants to manage their own runners (???)**
* User who only wants to use our golden path
* User who wants to use our golden path and add custom actions
* User who wants to use their own templates and import some of our actions
* User who wants to import an existing GitHub repository with a pipeline
2024-11-13 09:28:56 +01:00
## Considered Options
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* Argo Workflows + Events
* Argo Workflows + Events + Additional Composition tool
* Forgejo Actions
* Forgejo Actions + Additional Composition tool
* Dagger (as Engine)
* Shuttle (as Engine)
2024-11-13 09:28:56 +01:00
## Decision Outcome
TBD
## Pros and Cons of the Options
2024-11-18 16:07:50 +01:00
### Argo Workflows + Events
2024-11-13 09:28:56 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Pro
2024-11-13 09:28:56 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* integration with ArgoCD
* ability to trigger additional workflows based on events.
* level of maturity and community support.
2024-11-13 09:28:56 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Con
2024-11-13 09:28:56 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* Ability to self-host runners?
* way how composition for pipelines works (based on Kubernetes CRDs)
* Templates must be available in the cluster where the pipelines are executed, so any imported templates must be applied into the cluster before the pipeline can be executed and cannot simply reference a repository
* This makes it difficult to import existing templates from other repositories when using self-hosted runners
* This also makes it difficult to use our golden path, or at least we will need to provide a way to import our golden path into the cluster
* This also makes the split of every component has its own repo very difficult
* additional UI to manage the pipeline
* Additional complexity
2024-11-13 09:28:56 +01:00
2024-11-18 16:07:50 +01:00
### Argo Workflows + Events + Additional Composition tool
2024-11-13 09:28:56 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Pro
2024-11-13 09:28:56 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* Composability can be offloaded to another tool
2024-11-13 09:28:56 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Con
2024-11-13 09:28:56 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* All cons of the previous option (except composability)
* Additional complexity by adding another tool
2024-11-18 16:07:50 +01:00
### Forgejo Actions
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Pro
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* tight integration with GitHub Actions providing a familiar interface for developers and a vast catalog of actions to choose from
* ability to compose pipelines without relying on another tool
* Self-hosting of runners possible
* every component can have its own repository and use different tools (e.g. written in go, bash, python etc.)
2024-11-18 16:07:50 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Con
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* level of maturity - will require additional investments to provide a production-grade system
2024-11-18 16:07:50 +01:00
### Forgejo Actions + Additional Tool
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Pro
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* may be possible to use GitHub actions alongside another tool
2024-11-18 16:07:50 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Con
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* additional complexity by adding another tool
2024-11-18 16:07:50 +01:00
### Shuttle
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Pro
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* Possibility to clearly define interfaces for pipeline steps
* Relatively simple
2024-11-18 16:07:50 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Con
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* basically backed by only one company
* **centralized templates**, so no mechanism for composing pipelines from multiple repositories
2024-11-18 16:07:50 +01:00
### Dagger
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Pro
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* Pipeline as code
* if it runs it should run anywhere and produce the "same" / somewhat stable results
* build environments are defined within containers / the dagger config. Dagger is the only dependency one has to install on a machine
* DX is extremely nice, especially if you have to debug (image) builds, also type safety due to the ability to code your build in a strong language
* additional tooling, like trivy, is added to a build pipeline with low effort due to containers and existing plugin/wrappers
* you can create complex test environments similar to test containers and docker compose
2024-11-18 16:07:50 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Con
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* relies heavily containers, which might not be available some environments (due to policy etc), it also has an effect on reproducibility and verifiability
* as a dev you need to properly understand containers
* dagger engine has to run privileged locally and/or in the cloud which might be a blocker or at least a big pain in the ...
2024-11-18 16:07:50 +01:00
fix(lint): improve markdown quality and exclude legacy v1 documentation Added .markdownlintignore to exclude legacy v1 documentation and blog posts from markdown linting. This allows the team to focus on maintaining quality for actively maintained documentation while avoiding the need to fix 200+ pre-existing lint errors in historical content. Excluded paths: - content/en/docs/v1/** (legacy v1 documentation with historical lint debt) - content/en/blog/** (blog posts with varied formatting styles) Fixed markdown linting errors in current documentation: - content/en/docs/_index.md: Removed excessive blank lines - content/en/docs/decisions/0001-pipeline-tools.md: * Converted emphasis (**Pro**, **Con**) to proper h4 headings * Improves document structure and accessibility * Maintains visual hierarchy while meeting markdown standards Fixed sample v1 files that were blocking CI: - content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md: * Replaced hard tabs with spaces (MD010) * Added language tags to code blocks (bash) - content/en/docs/v1/solution/tools/kyverno integration/_index.md: * Added blank line before list items (MD032) * Added language tags to code blocks (bash) Impact: - task test:quick now passes cleanly - CI pipeline markdown validation succeeds - New documentation maintains high quality standards - Legacy content preserved without blocking development This approach balances: 1. Maintaining quality for actively developed docs 2. Not requiring massive refactoring of legacy content 3. Enabling clean CI/CD pipeline 4. Providing clear quality standards for future contributions
2025-11-07 11:52:12 +01:00
#### Suggestion Patrick
2024-11-18 16:07:50 +01:00
test: configure comprehensive markdown linting with Docsy best practices Configure markdownlint with rules aligned to technical documentation standards and Docsy theme conventions. Design Decisions: - Enable core quality rules (heading hierarchy, consistent list styles) - Allow inline HTML for Docsy shortcodes and components - Permit bare URLs (common in technical documentation) - Make code block language hints optional (pragmatic for existing content) - Set maximum 2 consecutive blank lines (balanced readability) - Enforce single trailing newline (POSIX standard) - Use asterisk for unordered lists (consistency) - Allow 2-space list indentation (Markdown standard) Auto-fixed Issues: - Converted dash lists to asterisk lists (568 fixes) - Removed trailing spaces (211 fixes) - Added missing trailing newlines (74 fixes) - Added blank lines around lists and headings (100+ fixes) Remaining Style Warnings (intentionally accepted): - MD029: List numbering variations in meeting notes (75 instances) - MD036: Bold text for section headers in ADRs (13 instances) - MD025: Multiple H1 in notes/brainstorming docs (10 instances) - MD032/MD022: Minor spacing variations (15 instances) Test Results: ✅ Hugo build: 227 pages generated successfully ✅ HTML validation: No errors ✅ Link checking: All links valid (except dev-only livereload) ✅ Markdown linting: Only non-critical style warnings remain The configuration balances strict quality checks with pragmatic flexibility for diverse content types (documentation, ADRs, meeting notes, tutorials).
2025-10-23 14:25:46 +02:00
* dagger is a heavy weight and might not be as productive in a dev workflow as it seems (setup lsp etc)
* it might be too opinionated to force on teams, especially since it is not near mainstream enough, community might be too small
* it feels like dagger gets you 95% of the way, but the remaining 5% are a real struggle
* if we like it, we should check the popularity in the dev community before further considering as it has a direct impact on teams and their preferences