Skip to content

Commit 33454eb

Browse files
committed
feat(k8s/amour/default): monitor kube-apiserver
1 parent 779056b commit 33454eb

File tree

8 files changed

+142
-0
lines changed

8 files changed

+142
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
load("@com_github_tnarg_rules_cue//cue:cue.bzl", "cue_library")
2+
3+
cue_library(
4+
name = "cue_endpoint_library",
5+
srcs = [
6+
"crypto_go_gen.cue",
7+
"domain_filter_go_gen.cue",
8+
"endpoint_go_gen.cue",
9+
"labels_go_gen.cue",
10+
"target_filter_go_gen.cue",
11+
],
12+
importpath = "sigs.k8s.io/external-dns/endpoint",
13+
visibility = ["//visibility:public"],
14+
deps = ["//cue.mod/gen/k8s.io/apimachinery/pkg/apis/meta/v1:cue_v1_library"],
15+
)

k8s/amour/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ cue_export(
2727
"//k8s/amour/cert_manager_csi_driver:cue_cert_manager_csi_driver_library",
2828
"//k8s/amour/cilium:cue_cilium_library",
2929
"//k8s/amour/dcgm_exporter:cue_dcgm_exporter_library",
30+
"//k8s/amour/default:cue_default_library",
3031
"//k8s/amour/emqx:cue_emqx_library",
3132
"//k8s/amour/emqx_exporter:cue_emqx_exporter_library",
3233
"//k8s/amour/external_dns:cue_external_dns_library",

k8s/amour/default/BUILD.bazel

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
load("@com_github_tnarg_rules_cue//cue:cue.bzl", "cue_library")
2+
3+
cue_library(
4+
name = "cue_default_library",
5+
srcs = [
6+
"list.cue",
7+
"namespace_list.cue",
8+
"vm_service_scrape_list.cue",
9+
],
10+
importpath = "github.com/uhthomas/automata/k8s/amour/default",
11+
visibility = ["//visibility:public"],
12+
deps = ["//cue.mod/gen/k8s.io/api/core/v1:cue_v1_library"],
13+
)

k8s/amour/default/list.cue

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package default
2+
3+
import (
4+
"list"
5+
6+
"k8s.io/api/core/v1"
7+
)
8+
9+
#Namespace: "default"
10+
11+
#List: v1.#List & {
12+
apiVersion: "v1"
13+
kind: "List"
14+
items: [...{metadata: namespace: #Namespace}]
15+
}
16+
17+
#List: items: list.Concat(_items)
18+
19+
_items: [
20+
#NamespaceList.items,
21+
#VMServiceScrapeList.items,
22+
]

k8s/amour/default/namespace_list.cue

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package default
2+
3+
import "k8s.io/api/core/v1"
4+
5+
#NamespaceList: v1.#NamespaceList & {
6+
apiVersion: "v1"
7+
kind: "NamespaceList"
8+
items: [...{
9+
apiVersion: "v1"
10+
kind: "Namespace"
11+
}]
12+
}
13+
14+
#NamespaceList: items: [{metadata: name: #Namespace}]
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package default
2+
3+
import "k8s.io/api/core/v1"
4+
5+
// TODO: Use generated types.
6+
//
7+
// https://github.com/cue-lang/cue/issues/2466
8+
#VMServiceScrapeList: v1.#List & {
9+
apiVersion: "operator.victoriametrics.com/v1beta1"
10+
kind: "VMServiceScrapeList"
11+
items: [...{
12+
apiVersion: "operator.victoriametrics.com/v1beta1"
13+
kind: "VMServiceScrape"
14+
}]
15+
}
16+
17+
#VMServiceScrapeList: items: [{
18+
metadata: name: "kube-api-server"
19+
spec: {
20+
jobLabel: "component"
21+
endpoints: [{
22+
port: "https"
23+
scheme: "https"
24+
tlsConfig: {
25+
caFile: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
26+
serverName: "kubernetes"
27+
}
28+
bearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token"
29+
}]
30+
selector: matchLabels: {
31+
component: "apiserver"
32+
provider: "kubernetes"
33+
}
34+
}
35+
}]
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package kube_system
2+
3+
import "k8s.io/api/core/v1"
4+
5+
#ServiceList: v1.#ServiceList & {
6+
apiVersion: "v1"
7+
kind: "ServiceList"
8+
items: [...{
9+
apiVersion: "v1"
10+
kind: "Service"
11+
}]
12+
}
13+
14+
#ServiceList: items: [{
15+
metadata: {
16+
name: "kube-controller-manager"
17+
labels: "app.kubernetes.io/name": name
18+
}
19+
spec: {
20+
ports: [{
21+
name: "metrics"
22+
port: 10257
23+
}]
24+
selector: "k8s-app": "kube-controller-manager"
25+
clusterIP: v1.#ClusterIPNone
26+
}
27+
}, {
28+
metadata: {
29+
name: "kube-scheduler"
30+
labels: "app.kubernetes.io/name": name
31+
}
32+
spec: {
33+
ports: [{
34+
name: "metrics"
35+
port: 10259
36+
}]
37+
selector: "k8s-app": "kube-scheduler"
38+
clusterIP: v1.#ClusterIPNone
39+
}
40+
}]

k8s/amour/list.cue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/uhthomas/automata/k8s/amour/cert_manager"
88
"github.com/uhthomas/automata/k8s/amour/cilium"
99
"github.com/uhthomas/automata/k8s/amour/dcgm_exporter"
10+
"github.com/uhthomas/automata/k8s/amour/default"
1011
"github.com/uhthomas/automata/k8s/amour/emqx"
1112
"github.com/uhthomas/automata/k8s/amour/emqx_exporter"
1213
"github.com/uhthomas/automata/k8s/amour/external_dns"
@@ -75,6 +76,7 @@ _items: [
7576
cert_manager.#List.items,
7677
cilium.#List.items,
7778
dcgm_exporter.#List.items,
79+
default.#List.items,
7880
emqx.#List.items,
7981
emqx_exporter.#List.items,
8082
external_dns.#List.items,

0 commit comments

Comments
 (0)