Skip to content

Commit 8a1ee4b

Browse files
authored
Merge branch 'main' into chore/examples-remove-testify
2 parents 0cf57e6 + 1dd4a4d commit 8a1ee4b

File tree

972 files changed

+781702
-322366
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

972 files changed

+781702
-322366
lines changed

.coderabbit.yaml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
2+
language: en-US
3+
4+
reviews:
5+
# Disable review status comments on PRs
6+
review_status: false
7+
8+
# Request changes when issues are found (vs just commenting)
9+
request_changes_workflow: false
10+
11+
# Enable high-level summary of changes
12+
high_level_summary: true
13+
14+
# Add a poem to the review (fun but optional - set false if you prefer serious reviews)
15+
poem: false
16+
17+
# Review profile - choose from: chill, assertive, or default
18+
# "chill" = fewer nitpicks, "assertive" = stricter reviews
19+
profile: chill
20+
21+
# Collapse walkthrough comments to reduce noise
22+
collapse_walkthrough: true
23+
24+
# Paths to ignore during reviews
25+
path_filters:
26+
- "!**/*.generated.go"
27+
- "!**/*_generated.go"
28+
- "!**/zz_generated.*.go"
29+
- "!**/mocks/**"
30+
- "!**/vendor/**"
31+
- "!**/*.pb.go"
32+
- "!**/node_modules/**"
33+
- "!**/*.snap"
34+
- "!**/dist/**"
35+
- "!**/api/openapi-spec/*.json"
36+
- "!**/sdks/java/client/**"
37+
- "!**/sdks/python/client/**"
38+
39+
auto_review:
40+
enabled: false
41+
42+
# Tools configuration
43+
tools:
44+
# Go linting
45+
golangci-lint:
46+
enabled: true
47+
48+
# Shell script analysis
49+
shellcheck:
50+
enabled: true
51+
52+
# YAML validation (great for K8s manifests)
53+
yamllint:
54+
enabled: true
55+
56+
# Markdown linting for docs
57+
markdownlint:
58+
enabled: true
59+
60+
# GitHub Actions workflow validation
61+
actionlint:
62+
enabled: true
63+
64+
chat:
65+
# Enable chat interactions on PRs
66+
auto_reply: true
67+
68+
# Knowledge base - helps CodeRabbit understand project context
69+
knowledge_base:
70+
# Learn from merged PRs
71+
learnings:
72+
scope: auto

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// This image is built and pushed by .github/workflows/devcontainer.yaml using .devcontainer/builder/devcontainer.json
66
"image": "quay.io/argoproj/argo-workflows-devcontainer",
77

8-
"forwardPorts": [9000, 9001, 9090, 2746, 8080, 5556, 6060, 9091, 3306, 5432, 10000, 8000],
8+
"forwardPorts": [9000, 9001, 9090, 2746, 8080, 5556, 5554, 6060, 9091, 3306, 5432, 10000, 8000],
99
"hostRequirements": {
1010
"cpus": 4
1111
},
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Component: UI
2+
Issues: 14679
3+
Description: Add an informational message to the CronWorkflow delete confirmation modal indicating that Workflows created by the CronSchedule will also be deleted.
4+
Author: [minsun yun](https://github.com/miinsun)
5+
6+
- UI/UX only; **no functional logic** is changed.
7+
- Verified manually by deleting a CronWorkflow in the Workflows UI and confirming the message renders correctly.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
Description: Added CRD validation rules
2+
Authors: [Alan Clucas](https://github.com/Joibel
3+
Component: General
4+
Issues: 13503
5+
6+
Added some validation rules to the full CRDs which allow some simpler validation to happen as the object is added to the kubernetes cluster.
7+
This is useful if you're using a mechanism which bypasses the validator such as kubectl apply.
8+
It will inform you of
9+
10+
**Note:** Some validations cannot be implemented as CEL rules due to Kubernetes limitations.
11+
Fields marked with `+kubebuilder:validation:Schemaless` (like `withItems`) or `+kubebuilder:pruning:PreserveUnknownFields` (like `inline`) are not visible to CEL validation expressions.
12+
13+
**CEL Budget Management:** Kubernetes limits the total cost of CEL validation rules per CRD. To stay within these limits:
14+
* All `status` blocks have CEL validations automatically stripped during CRD generation
15+
* Controller-managed CRDs (WorkflowTaskSet, WorkflowTaskResult, WorkflowArtifactGCTask) have all CEL validations removed from both spec and status
16+
* Server-side validations in `workflow/validate/validate.go` supplement CEL for fields that cannot be validated with CEL (e.g., schemaless fields)
17+
18+
**Array and String Size Limits:** To manage CEL validation costs, the following maximum sizes are enforced:
19+
* Templates per workflow: 200
20+
* DAG tasks per DAG template: 200
21+
* Parameters: 500
22+
* Prometheus metrics per template: 100
23+
* Gauge metric value string: 256 characters
24+
25+
#### Mutual Exclusivity Rules:
26+
* only one template type per template
27+
* only one of sequence count/end
28+
* only one of manifest/manifestFrom
29+
* cannot use both depends and dependencies in DAG tasks.
30+
31+
#### DAG Task Constraints:
32+
* task names cannot start with digit when using depends/dependencies
33+
* cannot use continueOn with depends.
34+
35+
#### Timeout on Non-Leaf Templates:
36+
* Timeout cannot be set on steps or dag templates (only on leaf templates).
37+
38+
#### Cron Schedule Format:
39+
* CronWorkflow schedules must be valid 5-field cron expressions, specialdescriptors (@yearly, @hourly, etc.), or interval format (@every).
40+
41+
#### Metric Validation:
42+
* metric and label names validation
43+
* help and value fields required
44+
* real-time gauges cannot use resourcesDuration metrics
45+
46+
#### Artifact:
47+
* At most one artifact location may be specified
48+
* Artifact.Mode must be between 0 and 511 (0777 octal) for file permissions.
49+
50+
#### Enum Validations:
51+
* PodGC strategy
52+
* ConcurrencyPolicy
53+
* RetryPolicy
54+
* GaugeOperation
55+
* Resource action
56+
* MergeStrategy
57+
all have restricted allowed values.
58+
59+
#### Name Pattern Constraints:
60+
* Template/Step/Task names: max 128 chars, pattern ^[a-zA-Z0-9][-a-zA-Z0-9]*$;
61+
* Parameter/Artifact names: pattern ^[a-zA-Z0-9_][-a-zA-Z0-9_]*$.
62+
63+
#### Minimum Array Sizes:
64+
* Template.Steps requires at least one step group
65+
* Parameter.Enum requires at least one value
66+
* CronWorkflow.Schedules requires at least one schedule
67+
* DAG.Tasks requires at least one task.
68+
69+
#### Numeric Constraints:
70+
* Parallelism minimum 1
71+
* StartingDeadlineSeconds minimum 0.

.features/pending/convert.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Description: `convert` CLI command to convert to new workflow format
2+
Authors: [Alan Clucas](https://github.com/Joibel)
3+
Component: CLI
4+
Issues: 14977
5+
6+
A new CLI command `convert` which will convert Workflows, CronWorkflows, and (Cluster)WorkflowTemplates to the new format.
7+
It will remove `schedule` from CronWorkflows, moving that into `schedules`
8+
It will remove `mutex` and `semaphore` from `synchronization` blocks and move them to the plural version.
9+
Otherwise this command works much the same as linting.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Description: Allow custom CA certificate configuration for SSO OIDC provider connections
2+
Authors: [bradfordwagner](https://github.com/bradfordwagner)
3+
Component: General
4+
Issues: 7198
5+
6+
This feature adds support for custom TLS configuration when connecting to OIDC providers for SSO authentication.
7+
This is particularly useful when your OIDC provider uses self-signed certificates or custom Certificate Authorities (CAs).
8+
9+
* Use this feature when your OIDC provider uses custom self-signed CA certificates
10+
* Configure custom CA certificates either inline or by file path
11+
12+
### Configuration Examples
13+
14+
#### Inline PEM content
15+
```yaml
16+
sso:
17+
# Custom PEM encoded CA certificate file contents
18+
rootCA: |-
19+
-----BEGIN CERTIFICATE-----
20+
MIIDXTCCAkWgAwIBAgIJAKoK/heBjcOuMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
21+
...
22+
-----END CERTIFICATE-----
23+
```
24+
25+
The system will automatically use certificates configured with SSL_CERT_DIR, and SSL_CERT_FILE for non macOS environments.
26+
For production environments, always use proper CA certificates instead of skipping TLS verification.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Description: Disable write back informer by default
2+
Author: [Eduardo Rodrigues](https://github.com/eduardodbr)
3+
Component: General
4+
Issues: 12352
5+
6+
Update the controller’s default behavior to disable the write-back informer. We’ve seen several cases of unexpected behavior that appear to be caused by the write-back mechanism, and Kubernetes docs recommend avoiding writes to the informer store. Although turning it off may increase the frequency of 409 Conflict errors, it should help reduce unpredictable controller behavior.
7+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Description: Name Not Equals filter now available in the UI for filtering workflows
2+
Authors: [Miltiadis Alexis](https://github.com/miltalex)
3+
Component: UI
4+
Issues: #13468
5+
6+
You can now use the "Name Not Equals" filter in the workflow list to exclude workflows by name.
7+
This complements the existing "Name Exact" filter and provides more flexible filtering options.
8+
Use this filter when you want to view all workflows except those matching a specific name pattern.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Description: Support metadata.name= and metadata.name!= in field selectors
2+
Authors: [Miltiadis Alexis](https://github.com/miltalex)
3+
Component: General
4+
Issues: #13468
5+
6+
Field selectors for `metadata.name` now support the `==` and `!=` operators, giving you more flexible control over resource filtering.
7+
8+
Use the `==` operator to match resources with an exact name, or use `!=` to exclude resources by name.
9+
10+
This brings field selector behavior in line with native Kubernetes functionality and enables more precise resource queries.

.gitattributes

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
sdks/python/client/** linguist-generated
21
sdks/java/client/** linguist-generated
32
manifests/base/crds/*/argoproj.io*.yaml linguist-generated
43
manifests/quick-start-*.yaml linguist-generated

0 commit comments

Comments
 (0)