mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
395 lines
13 KiB
YAML
395 lines
13 KiB
YAML
apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: canaries.flagger.app
|
|
annotations:
|
|
helm.sh/resource-policy: keep
|
|
spec:
|
|
group: flagger.app
|
|
version: v1alpha3
|
|
versions:
|
|
- name: v1alpha3
|
|
served: true
|
|
storage: true
|
|
- name: v1alpha2
|
|
served: true
|
|
storage: false
|
|
- name: v1alpha1
|
|
served: true
|
|
storage: false
|
|
names:
|
|
plural: canaries
|
|
singular: canary
|
|
kind: Canary
|
|
categories:
|
|
- all
|
|
scope: Namespaced
|
|
subresources:
|
|
status: {}
|
|
additionalPrinterColumns:
|
|
- name: Status
|
|
type: string
|
|
JSONPath: .status.phase
|
|
- name: Weight
|
|
type: string
|
|
JSONPath: .status.canaryWeight
|
|
- name: FailedChecks
|
|
type: string
|
|
JSONPath: .status.failedChecks
|
|
priority: 1
|
|
- name: Interval
|
|
type: string
|
|
JSONPath: .spec.canaryAnalysis.interval
|
|
priority: 1
|
|
- name: Mirror
|
|
type: boolean
|
|
JSONPath: .spec.canaryAnalysis.mirror
|
|
priority: 1
|
|
- name: StepWeight
|
|
type: string
|
|
JSONPath: .spec.canaryAnalysis.stepWeight
|
|
priority: 1
|
|
- name: MaxWeight
|
|
type: string
|
|
JSONPath: .spec.canaryAnalysis.maxWeight
|
|
priority: 1
|
|
- name: LastTransitionTime
|
|
type: string
|
|
JSONPath: .status.lastTransitionTime
|
|
validation:
|
|
openAPIV3Schema:
|
|
properties:
|
|
spec:
|
|
required:
|
|
- targetRef
|
|
- service
|
|
- canaryAnalysis
|
|
properties:
|
|
provider:
|
|
description: Traffic managent provider
|
|
type: string
|
|
metricsServer:
|
|
description: Prometheus URL
|
|
type: string
|
|
progressDeadlineSeconds:
|
|
description: Deployment progress deadline
|
|
type: number
|
|
targetRef:
|
|
description: Deployment selector
|
|
type: object
|
|
required: ["apiVersion", "kind", "name"]
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
name:
|
|
type: string
|
|
autoscalerRef:
|
|
description: HPA selector
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
required: ["apiVersion", "kind", "name"]
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
name:
|
|
type: string
|
|
ingressRef:
|
|
description: NGINX ingress selector
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
required: ["apiVersion", "kind", "name"]
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
name:
|
|
type: string
|
|
service:
|
|
type: object
|
|
required: ["port"]
|
|
properties:
|
|
name:
|
|
description: Kubernetes service name
|
|
type: string
|
|
port:
|
|
description: Container port number
|
|
type: number
|
|
portName:
|
|
description: Container port name
|
|
type: string
|
|
targetPort:
|
|
description: Container target port name
|
|
anyOf:
|
|
- type: string
|
|
- type: number
|
|
portDiscovery:
|
|
description: Enable port dicovery
|
|
type: boolean
|
|
meshName:
|
|
description: AppMesh mesh name
|
|
type: string
|
|
backends:
|
|
description: AppMesh backend array
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
timeout:
|
|
description: Istio HTTP or gRPC request timeout
|
|
type: string
|
|
trafficPolicy:
|
|
description: Istio traffic policy
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
match:
|
|
description: Istio URL match conditions
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
rewrite:
|
|
description: Istio URL rewrite
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
headers:
|
|
description: Istio headers operations
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
corsPolicy:
|
|
description: Istio CORS policy
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
gateways:
|
|
description: Istio gateways list
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
hosts:
|
|
description: Istio hosts list
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
skipAnalysis:
|
|
type: boolean
|
|
canaryAnalysis:
|
|
properties:
|
|
interval:
|
|
description: Canary schedule interval
|
|
type: string
|
|
pattern: "^[0-9]+(m|s)"
|
|
iterations:
|
|
description: Number of checks to run for A/B Testing and Blue/Green
|
|
type: number
|
|
threshold:
|
|
description: Max number of failed checks before rollback
|
|
type: number
|
|
maxWeight:
|
|
description: Max traffic percentage routed to canary
|
|
type: number
|
|
stepWeight:
|
|
description: Canary incremental traffic percentage step
|
|
type: number
|
|
mirror:
|
|
description: Mirror traffic to canary before shifting
|
|
type: boolean
|
|
match:
|
|
description: A/B testing match conditions
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
metrics:
|
|
description: Prometheus query list for this canary
|
|
type: array
|
|
properties:
|
|
items:
|
|
type: object
|
|
required: ["name", "threshold"]
|
|
properties:
|
|
name:
|
|
description: Name of the metric
|
|
type: string
|
|
interval:
|
|
description: Interval of the query
|
|
type: string
|
|
pattern: "^[0-9]+(m|s)"
|
|
threshold:
|
|
description: Max value accepted for this metric
|
|
type: number
|
|
query:
|
|
description: Prometheus query
|
|
type: string
|
|
templateRef:
|
|
description: Metric template reference
|
|
type: object
|
|
required: ["name"]
|
|
properties:
|
|
name:
|
|
description: Name of this metric template
|
|
type: string
|
|
namespace:
|
|
description: Namespace of this metric template
|
|
type: string
|
|
webhooks:
|
|
description: Webhook list for this canary
|
|
type: array
|
|
properties:
|
|
items:
|
|
type: object
|
|
required: ["name", "url"]
|
|
properties:
|
|
name:
|
|
description: Name of the webhook
|
|
type: string
|
|
type:
|
|
description: Type of the webhook pre, post or during rollout
|
|
type: string
|
|
enum:
|
|
- ""
|
|
- confirm-rollout
|
|
- pre-rollout
|
|
- rollout
|
|
- confirm-promotion
|
|
- post-rollout
|
|
- event
|
|
- rollback
|
|
url:
|
|
description: URL address of this webhook
|
|
type: string
|
|
format: url
|
|
timeout:
|
|
description: Request timeout for this webhook
|
|
type: string
|
|
pattern: "^[0-9]+(m|s)"
|
|
metadata:
|
|
description: Metadata (key-value pairs) for this webhook
|
|
anyOf:
|
|
- type: string
|
|
- type: object
|
|
status:
|
|
properties:
|
|
phase:
|
|
description: Analysis phase of this canary
|
|
type: string
|
|
enum:
|
|
- ""
|
|
- Initializing
|
|
- Initialized
|
|
- Waiting
|
|
- Progressing
|
|
- Promoting
|
|
- Finalising
|
|
- Succeeded
|
|
- Failed
|
|
canaryWeight:
|
|
description: Traffic weight percentage routed to canary
|
|
type: number
|
|
failedChecks:
|
|
description: Failed check count of the current canary analysis
|
|
type: number
|
|
iterations:
|
|
description: Iteration count of the current canary analysis
|
|
type: number
|
|
lastAppliedSpec:
|
|
description: LastAppliedSpec of this canary
|
|
type: string
|
|
lastTransitionTime:
|
|
description: LastTransitionTime of this canary
|
|
format: date-time
|
|
type: string
|
|
conditions:
|
|
description: Status conditions of this canary
|
|
type: array
|
|
properties:
|
|
items:
|
|
type: object
|
|
required: ["type", "status", "reason"]
|
|
properties:
|
|
lastTransitionTime:
|
|
description: LastTransitionTime of this condition
|
|
format: date-time
|
|
type: string
|
|
lastUpdateTime:
|
|
description: LastUpdateTime of this condition
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: Message associated with this condition
|
|
type: string
|
|
reason:
|
|
description: Reason for the current status of this condition
|
|
type: string
|
|
status:
|
|
description: Status of this condition
|
|
type: string
|
|
type:
|
|
description: Type of this condition
|
|
type: string
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: metrictemplates.flagger.app
|
|
annotations:
|
|
helm.sh/resource-policy: keep
|
|
spec:
|
|
group: flagger.app
|
|
version: v1alpha1
|
|
versions:
|
|
- name: v1alpha1
|
|
served: true
|
|
storage: true
|
|
names:
|
|
plural: metrictemplates
|
|
singular: metrictemplate
|
|
kind: MetricTemplate
|
|
categories:
|
|
- all
|
|
scope: Namespaced
|
|
subresources:
|
|
status: {}
|
|
validation:
|
|
openAPIV3Schema:
|
|
properties:
|
|
spec:
|
|
required:
|
|
- provider
|
|
- query
|
|
properties:
|
|
provider:
|
|
description: Provider of this metric template
|
|
type: object
|
|
required:
|
|
- type
|
|
- address
|
|
properties:
|
|
type:
|
|
description: Type of this provider
|
|
type: string
|
|
enum:
|
|
- prometheus
|
|
- influxdb
|
|
address:
|
|
description: API address of this provider
|
|
type: string
|
|
secretRef:
|
|
description: Kubernetes secret reference containing the provider credentials
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
description: Name of the Kubernetes secret
|
|
type: string
|
|
query:
|
|
description: Query of this metric template
|
|
type: string
|