Skip to content
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

Add metric and traffic plugins in Argo Rollouts #90

Merged
merged 3 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 20 additions & 0 deletions api/v1alpha1/argorollouts_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,26 @@ type RolloutManagerSpec struct {

// SkipNotificationSecretDeployment lets you specify if the argo notification secret should be deployed
SkipNotificationSecretDeployment bool `json:"skipNotificationSecretDeployment,omitempty"`

// Plugins specify the traffic and metric plugins in Argo Rollout
Plugins Plugins `json:"plugins,omitempty"`
}

// Plugin is used to integrate traffic management and metric plugins into the Argo Rollouts controller. For more information on these plugins, see the upstream Argo Rollouts documentation.
type Plugin struct {
// Name of the plugin, it must match the name required by the plugin so it can find its configuration
Name string `json:"name"`
// Location supports http(s):// urls and file://, though file:// requires the plugin be available on the filesystem
Location string `json:"location"`
// SHA256 is an optional sha256 checksum of the plugin executable
SHA256 string `json:"sha256,omitempty"`
}

type Plugins struct {
// TrafficManagement holds a list of traffic management plugins used to control traffic routing during rollouts.
TrafficManagement []Plugin `json:"trafficManagement,omitempty"`
// Metric holds a list of metric plugins used to gather and report metrics during rollouts.
Metric []Plugin `json:"metric,omitempty"`
}

// ArgoRolloutsNodePlacementSpec is used to specify NodeSelector and Tolerations for Rollouts workloads
Expand Down
41 changes: 41 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

59 changes: 59 additions & 0 deletions bundle/manifests/argoproj.io_rolloutmanagers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,65 @@ spec:
type: object
type: array
type: object
plugins:
description: Plugins specify the traffic and metric plugins in Argo
Rollout
properties:
metric:
description: Metric holds a list of metric plugins used to gather
and report metrics during rollouts.
items:
description: Plugin is used to integrate traffic management
and metric plugins into the Argo Rollouts controller. For
more information on these plugins, see the upstream Argo Rollouts
documentation.
properties:
location:
description: Location supports http(s):// urls and file://,
though file:// requires the plugin be available on the
filesystem
type: string
name:
description: Name of the plugin, it must match the name
required by the plugin so it can find its configuration
type: string
sha256:
description: SHA256 is an optional sha256 checksum of the
plugin executable
type: string
required:
- location
- name
type: object
type: array
trafficManagement:
description: TrafficManagement holds a list of traffic management
plugins used to control traffic routing during rollouts.
items:
description: Plugin is used to integrate traffic management
and metric plugins into the Argo Rollouts controller. For
more information on these plugins, see the upstream Argo Rollouts
documentation.
properties:
location:
description: Location supports http(s):// urls and file://,
though file:// requires the plugin be available on the
filesystem
type: string
name:
description: Name of the plugin, it must match the name
required by the plugin so it can find its configuration
type: string
sha256:
description: SHA256 is an optional sha256 checksum of the
plugin executable
type: string
required:
- location
- name
type: object
type: array
type: object
skipNotificationSecretDeployment:
description: SkipNotificationSecretDeployment lets you specify if
the argo notification secret should be deployed
Expand Down
59 changes: 59 additions & 0 deletions config/crd/bases/argoproj.io_rolloutmanagers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,65 @@ spec:
type: object
type: array
type: object
plugins:
description: Plugins specify the traffic and metric plugins in Argo
Rollout
properties:
metric:
description: Metric holds a list of metric plugins used to gather
and report metrics during rollouts.
items:
description: Plugin is used to integrate traffic management
and metric plugins into the Argo Rollouts controller. For
more information on these plugins, see the upstream Argo Rollouts
documentation.
properties:
location:
description: Location supports http(s):// urls and file://,
though file:// requires the plugin be available on the
filesystem
type: string
name:
description: Name of the plugin, it must match the name
required by the plugin so it can find its configuration
type: string
sha256:
description: SHA256 is an optional sha256 checksum of the
plugin executable
type: string
required:
- location
- name
type: object
type: array
trafficManagement:
description: TrafficManagement holds a list of traffic management
plugins used to control traffic routing during rollouts.
items:
description: Plugin is used to integrate traffic management
and metric plugins into the Argo Rollouts controller. For
more information on these plugins, see the upstream Argo Rollouts
documentation.
properties:
location:
description: Location supports http(s):// urls and file://,
though file:// requires the plugin be available on the
filesystem
type: string
name:
description: Name of the plugin, it must match the name
required by the plugin so it can find its configuration
type: string
sha256:
description: SHA256 is an optional sha256 checksum of the
plugin executable
type: string
required:
- location
- name
type: object
type: array
type: object
skipNotificationSecretDeployment:
description: SkipNotificationSecretDeployment lets you specify if
the argo notification secret should be deployed
Expand Down
Loading
Loading