Skip to content
Open
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
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ helm-schema:
GOBIN=$(LOCALBIN) go install github.com/dadav/helm-schema/cmd/helm-schema@latest

values.schema.json: helm-schema
cd chart && ../.bin/helm-schema -r -f values.yaml && cd -
cd chart && ../.bin/helm-schema -r -k additionalProperties -f values.yaml && cd -

.PHONY: controller-gen
controller-gen: $(CONTROLLER_GEN) ## Download controller-gen locally if necessary. If wrong version is installed, it will be overwritten.
Expand Down
70 changes: 70 additions & 0 deletions chart/templates/plugins/aws-locations.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{{- if and .Values.plugins.enabled .Values.plugins.locations.aws }}
apiVersion: configs.flanksource.com/v1
kind: ScrapePlugin
metadata:
name: aws-locations
spec:
aliases:
- type: AWS::::Account
values:
- account://aws/$(.tags.account)

- type: AWS::AvailabilityZone
values:
- zone://aws/$(.tags.region)/$(.name)

- type: AWS::AvailabilityZoneID
values:
- zoneid://aws/$(.tags.region)/$(.name)

- type: AWS::Region
values:
- region://aws/$(.name)

- type: AWS::EC2::VPC
values:
- vpc://aws/$(.tags.account)/$(.tags.region)/$(.name)

- type: AWS::EC2::Subnet
values:
- subnet://aws/$(.tags.account)/$(.tags.region)/$(.labels.network)/$(.name)

- type: AWS::EC2::Instance
values:
- ec2instance://aws/$(.config.instance_id)

- type: AWS::EKS::Cluster
values:
- eks://aws/$(.tags.account)/$(.tags.region)/$(.name)

locations:
- type: AWS::*
filter: has(tags.account)
values:
- account://aws/$(.tags.account)

- type: AWS::*
filter: has(tags.region)
values:
- region://aws/$(.tags.region)

- type: AWS::*
filter: has(tags.zone) && has(tags.region)
values:
- zone://aws/$(.tags.region)/$(.tags.zone)

- type: AWS::*
filter: has(labels.network) # labels.network is the vpc name
values:
- vpc://aws/$(.tags.account)/$(.tags.region)/$(.labels.network)

- type: Kubernetes::Node
filter: >
.config.spec.providerID.startsWith("aws://") &&
"topology.kubernetes.io/region" in labels &&
"topology.kubernetes.io/zone" in labels
values:
- zone://aws/$(.labels["topology.kubernetes.io/region"])/$(.labels["topology.kubernetes.io/zone"])
- region://aws/$(.labels["topology.kubernetes.io/region"])
- ec2instance://aws/$(.config.spec.providerID | strings.Split "/" | last)
{{- end }}
80 changes: 80 additions & 0 deletions chart/templates/plugins/k8s.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{{- if and .Values.plugins.enabled .Values.plugins.locations.kubernetes }}
apiVersion: configs.flanksource.com/v1
kind: ScrapePlugin
metadata:
name: k8s-locations-and-aliases
spec:
aliases:
- type: Kubernetes::Cluster
values:
- cluster://kubernetes/$(.name)

- type: Kubernetes::Namespace
values:
- namespace://kubernetes/$(tags.cluster)/$(.name)

- type: Kubernetes::Deployment
values:
- deployment://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.name)

- type: Kubernetes::StatefulSet
values:
- statefulset://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.name)

- type: Kubernetes::DaemonSet
values:
- daemonset://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.name)

- type: Kubernetes::Job
values:
- job://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.name)

- type: Kubernetes::HelmRelease
values:
- helm://$(tags.cluster)/$(tags.namespace)/$(.name)

- type: Kubernetes::Node
filter: labels.apiVersion == "v1"
values:
- node://kubernetes/$(tags.cluster)/$(.name)

locations:
- type: Kubernetes::*
values:
- cluster://kubernetes/$(.tags.cluster)

- type: Kubernetes::*
filter: has(labels.node)
values:
- node://kubernetes/$(.tags.cluster)/$(.labels.node)

- type: Kubernetes::*
filter: has(tags.namespace)
values:
- namespace://kubernetes/$(tags.cluster)/$(.tags.namespace)

- type: 'Kubernetes::*'
filter: has(labels.deployment)
values:
- deployment://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.labels.deployment)

- type: Kubernetes::*
filter: has(labels.statefulset)
values:
- statefulset://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.labels.statefulset)

- type: Kubernetes::*
filter: has(labels.daemonset)
values:
- daemonset://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.labels.daemonset)

- type: Kubernetes::*
filter: has(labels.job)
values:
- job://kubernetes/$(tags.cluster)/$(.tags.namespace)/$(.labels.job)

- type: Kubernetes::*
withParent: Kubernetes::HelmRelease
values:
- helm://$(tags.cluster)/$(.parent.tags.namespace)/$(.parent.name)
{{- end }}
Loading
Loading