xosss.observe.platform.upbound.io
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xosss.observe.platform.upbound.io
creationTimestamp: null
spec:
compositeTypeRef:
apiVersion: observe.platform.upbound.io/v1alpha1
kind: XOss
mode: Pipeline
pipeline:
- step: patch-and-transform
functionRef:
name: crossplane-contrib-function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
patchSets:
- name: common
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.id
toFieldPath: spec.providerConfigRef.name
type: FromCompositeFieldPath
resources:
- base:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
metadata:
labels:
type: podMonitorCrossplaneRbacManager
spec:
forProvider:
manifest:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
labels:
app: crossplane-rbac-manager
name: crossplane-rbac-manager
namespace: operators
spec:
namespaceSelector:
matchNames:
- crossplane-system
- upbound-system
podMetricsEndpoints:
- port: metrics
selector:
matchLabels:
app: crossplane-rbac-manager
name: podMonitorCrossplaneRbacManager
patches:
- patchSetName: common
type: PatchSet
- base:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
metadata:
labels:
type: podMonitorCrossplane
spec:
forProvider:
manifest:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
labels:
app: crossplane
name: crossplane
namespace: operators
spec:
namespaceSelector:
matchNames:
- crossplane-system
- upbound-system
podMetricsEndpoints:
- port: metrics
selector:
matchLabels:
app: crossplane
name: podMonitorCrossplane
patches:
- patchSetName: common
type: PatchSet
- base:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
metadata:
labels:
type: podMonitorCrossplaneProviders
spec:
forProvider:
manifest:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
labels:
app: crossplane-providers
name: crossplane-providers
namespace: operators
spec:
namespaceSelector:
matchNames:
- crossplane-system
- upbound-system
podMetricsEndpoints:
- port: http-prom
selector:
matchLabels:
app: crossplane-providers
name: podMonitorCrossplaneProviders
patches:
- patchSetName: common
type: PatchSet
- base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
forProvider:
chart:
name: kube-prometheus-stack
repository: https://prometheus-community.github.io/helm-charts
version: 52.1.0
namespace: operators
values:
prometheus:
prometheusSpec:
podMonitorSelectorNilUsesHelmValues: false
probeSelectorNilUsesHelmValues: false
ruleSelectorNilUsesHelmValues: false
serviceMonitorSelectorNilUsesHelmValues: false
rollbackLimit: 3
name: releasePrometheus
patches:
- patchSetName: common
type: PatchSet
- fromFieldPath: spec.parameters.id
toFieldPath: metadata.name
type: FromCompositeFieldPath
- fromFieldPath: metadata.labels
toFieldPath: metadata.labels
type: FromCompositeFieldPath
- fromFieldPath: metadata.annotations
toFieldPath: metadata.annotations
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.prometheus.version
toFieldPath: spec.forProvider.chart.version
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.id
toFieldPath: metadata.annotations[crossplane.io/external-name]
transforms:
- match:
fallbackValue: null
patterns:
- regexp: .*
result: oss
type: regexp
type: match
type: FromCompositeFieldPath
- base:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Usage
spec:
by:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
resourceSelector:
matchControllerRef: true
matchLabels:
type: podMonitorCrossplaneRbacManager
of:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
resourceSelector:
matchControllerRef: true
name: usagePrometheusByPodMonitorCrossplaneRbacManager
- base:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Usage
spec:
by:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
resourceSelector:
matchControllerRef: true
matchLabels:
type: podMonitorCrossplane
of:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
resourceSelector:
matchControllerRef: true
name: usagePrometheusByPodMonitorCrossplane
- base:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Usage
spec:
by:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
resourceSelector:
matchControllerRef: true
matchLabels:
type: podMonitorCrossplaneProviders
of:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
resourceSelector:
matchControllerRef: true
name: usagePrometheusByPodMonitorProviders