Update container images

This commit is contained in:
Carlos de Paula 2020-05-26 12:59:47 -03:00
parent 5b75c81a6a
commit 4185b080a1
39 changed files with 31405 additions and 29354 deletions

View File

@ -1,17 +1,17 @@
{ {
_config+:: { _config+:: {
versions+:: { versions+:: {
prometheus: 'v2.16.0', prometheus: 'v2.18.1',
alertmanager: 'v0.20.0', alertmanager: 'v0.20.0',
kubeStateMetrics: '1.9.5', kubeStateMetrics: '1.9.6',
kubeRbacProxy: 'v0.5.0', kubeRbacProxy: 'v0.5.0',
addonResizer: '2.3', addonResizer: '2.3',
nodeExporter: 'v0.18.1', nodeExporter: 'v0.18.1',
prometheusOperator: 'v0.37.0', prometheusOperator: 'v0.39.0',
prometheusAdapter: 'v0.6.0', prometheusAdapter: 'v0.7.0',
grafana: '6.6.2', grafana: '7.0.0',
configmapReloader: 'latest', configmapReloader: 'latest',
prometheusConfigReloader: 'v0.37.0', prometheusConfigReloader: 'v0.39.0',
armExporter: 'latest', armExporter: 'latest',
smtpServer: 'v1.0.1', smtpServer: 'v1.0.1',
elasticExporter: '1.0.4rc1', elasticExporter: '1.0.4rc1',
@ -25,7 +25,7 @@
addonResizer: 'carlosedp/addon-resizer', addonResizer: 'carlosedp/addon-resizer',
nodeExporter: 'prom/node-exporter', nodeExporter: 'prom/node-exporter',
prometheusOperator: 'carlosedp/prometheus-operator', prometheusOperator: 'carlosedp/prometheus-operator',
prometheusAdapter: 'carlosedp/k8s-prometheus-adapter', prometheusAdapter: 'directxman12/k8s-prometheus-adapter',
grafana: 'grafana/grafana', grafana: 'grafana/grafana',
configmapReloader: 'carlosedp/configmap-reload', configmapReloader: 'carlosedp/configmap-reload',
prometheusConfigReloader: 'carlosedp/prometheus-config-reloader', prometheusConfigReloader: 'carlosedp/prometheus-config-reloader',

View File

@ -18,8 +18,8 @@
"subdir": "Documentation/etcd-mixin" "subdir": "Documentation/etcd-mixin"
} }
}, },
"version": "07a74d61cb6c07965c5b594748dc999d1644862b", "version": "747ff75c96df87530bcd8b6b02d1160c5500bf4e",
"sum": "Ko3qhNfC2vN/houLh6C0Ryacjv70gl0DVPGU/PQ4OD0=" "sum": "pk7mLpdUrHuJKkj2vhD6LGMU7P+oYYooBXAeZyZa398="
}, },
{ {
"source": { "source": {
@ -28,8 +28,8 @@
"subdir": "jsonnet/kube-prometheus" "subdir": "jsonnet/kube-prometheus"
} }
}, },
"version": "285624d8fbef01923f7b9772fe2da21c5698a666", "version": "5a84ac52c7517a420b3bdf3cd251e8abce59a300",
"sum": "npFy3VLHkSDiwUK2DPC9Up4ETD0bMiTpGTXqetH0r4A=" "sum": "cEMmJvhn8dLnLqUVR0ql/XnwY8Jy3HH0YWIQQRaDD0o="
}, },
{ {
"source": { "source": {
@ -38,8 +38,8 @@
"subdir": "jsonnet/prometheus-operator" "subdir": "jsonnet/prometheus-operator"
} }
}, },
"version": "59bdf55453ba08b4ed7c271cb3c6627058945ed5", "version": "d0a871b710de7b764c05ced98dbd1eb32a681790",
"sum": "qwMbUQkdPhAn9Sl4OVLgzmNOuOTnRLUmvv14I0unsa8=" "sum": "cIOKRTNBUOl3a+QsaA/NjClmZAhyVJHlDFReKlXJBAs="
}, },
{ {
"source": { "source": {
@ -48,8 +48,8 @@
"subdir": "grafonnet" "subdir": "grafonnet"
} }
}, },
"version": "7a932c9cfc6ccdb1efca9535f165e055949be42a", "version": "5736b62831d779e28a8344646aee1f72b1fa1d90",
"sum": "HbCbHRvgA9a6K5FlOAYOUnErDHnNPWOCYPvDFU++bQE=" "sum": "ch97Uqauz7z+9mkOwzRz6JErxgWcQlfuJEEg+XHEadg="
}, },
{ {
"source": { "source": {
@ -58,7 +58,7 @@
"subdir": "grafana-builder" "subdir": "grafana-builder"
} }
}, },
"version": "03da9ea0fc25e621d195fbb218a6bf8593152721", "version": "b9cc0f3529833096c043084c04bc7b3562a134c4",
"sum": "slxrtftVDiTlQK22ertdfrg4Epnq97gdrLI63ftUfaE=" "sum": "slxrtftVDiTlQK22ertdfrg4Epnq97gdrLI63ftUfaE="
}, },
{ {
@ -79,8 +79,8 @@
"subdir": "" "subdir": ""
} }
}, },
"version": "ea905d25c01ff4364937a2faed248e5f2f3fdb35", "version": "2beabb38d3241eb5da5080cbeb648a0cd1e3cbc2",
"sum": "ww9kAgxtpzRC6y7SiVWH7fWJcptBg3Hde50eXmHzN7U=" "sum": "s6t8ntlUHAjnifWx5V1jnBukTLPya7fX7YZVxJ0GcTk="
}, },
{ {
"source": { "source": {
@ -89,7 +89,7 @@
"subdir": "lib/promgrafonnet" "subdir": "lib/promgrafonnet"
} }
}, },
"version": "ea905d25c01ff4364937a2faed248e5f2f3fdb35", "version": "2beabb38d3241eb5da5080cbeb648a0cd1e3cbc2",
"sum": "VhgBM39yv0f4bKv8VfGg4FXkg573evGDRalip9ypKbc=" "sum": "VhgBM39yv0f4bKv8VfGg4FXkg573evGDRalip9ypKbc="
}, },
{ {
@ -99,7 +99,7 @@
"subdir": "jsonnet/kube-state-metrics" "subdir": "jsonnet/kube-state-metrics"
} }
}, },
"version": "c485728b2e585bd1079e12e462cd7c6fef25f155", "version": "cce1e3309ab2f42953933e441cbb20b54d986551",
"sum": "cJjGZaLBjcIGrLHZLjRPU9c3KL+ep9rZTb9dbALSKqA=" "sum": "cJjGZaLBjcIGrLHZLjRPU9c3KL+ep9rZTb9dbALSKqA="
}, },
{ {
@ -109,18 +109,8 @@
"subdir": "jsonnet/kube-state-metrics-mixin" "subdir": "jsonnet/kube-state-metrics-mixin"
} }
}, },
"version": "c485728b2e585bd1079e12e462cd7c6fef25f155", "version": "cce1e3309ab2f42953933e441cbb20b54d986551",
"sum": "E1GGavnf9PCWBm4WVrxWnc0FIj72UcbcweqGioWrOdU=" "sum": "o5avaguRsfFwYFNen00ZEsub1x4i8Z/ZZ2QoEjFMff8="
},
{
"source": {
"git": {
"remote": "https://github.com/metalmatze/slo-libsonnet.git",
"subdir": "slo-libsonnet"
}
},
"version": "5ddd7ffc39e7a54c9aca997c2c389a8046fab0ff",
"sum": "S7/+tnAkzVh8Li7sg7Hu4aeIQAWHCtxhRQ+k1OKjoQk="
}, },
{ {
"source": { "source": {
@ -129,8 +119,8 @@
"subdir": "docs/node-mixin" "subdir": "docs/node-mixin"
} }
}, },
"version": "0107bc794204f50d887898da60032da890637471", "version": "b9c96706a7425383902b6143d097cf6d7cfd1960",
"sum": "VKdF0zPMSCiuIuXWblSz2VOeBaXzQ7fp40vz9sxj+Bo=" "sum": "3jFV2qsc/GZe2GADswTYqxxP2zGOiANTj73W/VNFGqc="
}, },
{ {
"source": { "source": {
@ -139,8 +129,8 @@
"subdir": "documentation/prometheus-mixin" "subdir": "documentation/prometheus-mixin"
} }
}, },
"version": "012161d90d6a8a6bb930b90601fb89ff6cc3ae60", "version": "c9565f08aa4dbd53164ec1b75ea401a70feb1506",
"sum": "5EUgr6Spr1zNR8Y2/NevjvEkGV9WMvKo6nEScNER1Lc=", "sum": "kRb3XBTe/AALDcaTFfyuiKqzhxtLvihBkVkvJ5cUd/I=",
"name": "prometheus" "name": "prometheus"
} }
], ],

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,7 @@ spec:
spec: spec:
containers: containers:
- env: [] - env: []
image: grafana/grafana:6.6.2 image: grafana/grafana:7.0.0
name: grafana name: grafana
ports: ports:
- containerPort: 3000 - containerPort: 3000

View File

@ -3,7 +3,7 @@ kind: ClusterRole
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
name: kube-state-metrics name: kube-state-metrics
rules: rules:
- apiGroups: - apiGroups:

View File

@ -3,7 +3,7 @@ kind: ClusterRoleBinding
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
name: kube-state-metrics name: kube-state-metrics
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io

View File

@ -3,7 +3,7 @@ kind: Deployment
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
name: kube-state-metrics name: kube-state-metrics
namespace: monitoring namespace: monitoring
spec: spec:
@ -15,7 +15,7 @@ spec:
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
spec: spec:
containers: containers:
- args: - args:
@ -23,7 +23,7 @@ spec:
- --port=8081 - --port=8081
- --telemetry-host=127.0.0.1 - --telemetry-host=127.0.0.1
- --telemetry-port=8082 - --telemetry-port=8082
image: carlosedp/kube-state-metrics:v1.9.5 image: carlosedp/kube-state-metrics:v1.9.6
name: kube-state-metrics name: kube-state-metrics
securityContext: securityContext:
runAsUser: 65534 runAsUser: 65534

View File

@ -3,7 +3,7 @@ kind: Service
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
name: kube-state-metrics name: kube-state-metrics
namespace: monitoring namespace: monitoring
spec: spec:

View File

@ -3,6 +3,6 @@ kind: ServiceAccount
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
name: kube-state-metrics name: kube-state-metrics
namespace: monitoring namespace: monitoring

View File

@ -3,7 +3,7 @@ kind: ServiceMonitor
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 1.9.5 app.kubernetes.io/version: 1.9.6
name: kube-state-metrics name: kube-state-metrics
namespace: monitoring namespace: monitoring
spec: spec:

View File

@ -2,17 +2,19 @@ apiVersion: apps/v1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
labels: labels:
app: node-exporter app.kubernetes.io/name: node-exporter
app.kubernetes.io/version: v0.18.1
name: node-exporter name: node-exporter
namespace: monitoring namespace: monitoring
spec: spec:
selector: selector:
matchLabels: matchLabels:
app: node-exporter app.kubernetes.io/name: node-exporter
template: template:
metadata: metadata:
labels: labels:
app: node-exporter app.kubernetes.io/name: node-exporter
app.kubernetes.io/version: v0.18.1
spec: spec:
containers: containers:
- args: - args:
@ -22,8 +24,7 @@ spec:
- --path.rootfs=/host/root - --path.rootfs=/host/root
- --no-collector.wifi - --no-collector.wifi
- --no-collector.hwmon - --no-collector.hwmon
- --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/) - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)
- --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$
image: prom/node-exporter:v0.18.1 image: prom/node-exporter:v0.18.1
name: node-exporter name: node-exporter
resources: resources:

View File

@ -2,7 +2,8 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
labels: labels:
k8s-app: node-exporter app.kubernetes.io/name: node-exporter
app.kubernetes.io/version: v0.18.1
name: node-exporter name: node-exporter
namespace: monitoring namespace: monitoring
spec: spec:
@ -12,4 +13,4 @@ spec:
port: 9100 port: 9100
targetPort: https targetPort: https
selector: selector:
app: node-exporter app.kubernetes.io/name: node-exporter

View File

@ -2,7 +2,8 @@ apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
metadata: metadata:
labels: labels:
k8s-app: node-exporter app.kubernetes.io/name: node-exporter
app.kubernetes.io/version: v0.18.1
name: node-exporter name: node-exporter
namespace: monitoring namespace: monitoring
spec: spec:
@ -20,7 +21,7 @@ spec:
scheme: https scheme: https
tlsConfig: tlsConfig:
insecureSkipVerify: true insecureSkipVerify: true
jobLabel: k8s-app jobLabel: app.kubernetes.io/name
selector: selector:
matchLabels: matchLabels:
k8s-app: node-exporter app.kubernetes.io/name: node-exporter

View File

@ -1,32 +1,32 @@
apiVersion: v1 apiVersion: v1
data: data:
config.yaml: | config.yaml: |-
resourceRules: "resourceRules":
cpu: "cpu":
containerQuery: sum(irate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container!="POD",container!="",pod!=""}[5m])) by (<<.GroupBy>>) "containerLabel": "container"
nodeQuery: sum(1 - irate(node_cpu_seconds_total{mode="idle"}[5m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>) "containerQuery": "sum(irate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container!=\"POD\",container!=\"\",pod!=\"\"}[5m])) by (<<.GroupBy>>)"
resources: "nodeQuery": "sum(1 - irate(node_cpu_seconds_total{mode=\"idle\"}[5m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>)"
overrides: "resources":
node: "overrides":
resource: node "namespace":
namespace: "resource": "namespace"
resource: namespace "node":
pod: "resource": "node"
resource: pod "pod":
containerLabel: container "resource": "pod"
memory: "memory":
containerQuery: sum(container_memory_working_set_bytes{<<.LabelMatchers>>,container!="POD",container!="",pod!=""}) by (<<.GroupBy>>) "containerLabel": "container"
nodeQuery: sum(node_memory_MemTotal_bytes{job="node-exporter",<<.LabelMatchers>>} - node_memory_MemAvailable_bytes{job="node-exporter",<<.LabelMatchers>>}) by (<<.GroupBy>>) "containerQuery": "sum(container_memory_working_set_bytes{<<.LabelMatchers>>,container!=\"POD\",container!=\"\",pod!=\"\"}) by (<<.GroupBy>>)"
resources: "nodeQuery": "sum(node_memory_MemTotal_bytes{job=\"node-exporter\",<<.LabelMatchers>>} - node_memory_MemAvailable_bytes{job=\"node-exporter\",<<.LabelMatchers>>}) by (<<.GroupBy>>)"
overrides: "resources":
instance: "overrides":
resource: node "instance":
namespace: "resource": "node"
resource: namespace "namespace":
pod: "resource": "namespace"
resource: pod "pod":
containerLabel: container "resource": "pod"
window: 5m "window": "5m"
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: adapter-config name: adapter-config

View File

@ -25,7 +25,7 @@ spec:
- --metrics-relist-interval=1m - --metrics-relist-interval=1m
- --prometheus-url=http://prometheus-k8s.monitoring.svc:9090/ - --prometheus-url=http://prometheus-k8s.monitoring.svc:9090/
- --secure-port=6443 - --secure-port=6443
image: carlosedp/k8s-prometheus-adapter:v0.6.0 image: directxman12/k8s-prometheus-adapter:v0.7.0
name: prometheus-adapter name: prometheus-adapter
ports: ports:
- containerPort: 6443 - containerPort: 6443

View File

@ -4,15 +4,19 @@ metadata:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
name: prometheus-operator name: prometheus-operator
namespace: monitoring namespace: monitoring
spec: spec:
endpoints: endpoints:
- honorLabels: true - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
port: http honorLabels: true
port: https
scheme: https
tlsConfig:
insecureSkipVerify: true
selector: selector:
matchLabels: matchLabels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0

View File

@ -26,7 +26,7 @@ spec:
namespace: monitoring namespace: monitoring
port: web port: web
externalUrl: http://prometheus.192.168.15.15.nip.io externalUrl: http://prometheus.192.168.15.15.nip.io
image: prom/prometheus:v2.16.0 image: prom/prometheus:v2.18.1
nodeSelector: nodeSelector:
kubernetes.io/os: linux kubernetes.io/os: linux
podMonitorNamespaceSelector: {} podMonitorNamespaceSelector: {}
@ -47,4 +47,4 @@ spec:
serviceAccountName: prometheus-k8s serviceAccountName: prometheus-k8s
serviceMonitorNamespaceSelector: {} serviceMonitorNamespaceSelector: {}
serviceMonitorSelector: {} serviceMonitorSelector: {}
version: v2.16.0 version: v2.18.1

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
{ {
"apiVersion": "apiextensions.k8s.io/v1beta1", "apiVersion": "apiextensions.k8s.io/v1",
"kind": "CustomResourceDefinition", "kind": "CustomResourceDefinition",
"metadata": { "metadata": {
"annotations": { "annotations": {
@ -9,25 +9,6 @@
"name": "alertmanagers.monitoring.coreos.com" "name": "alertmanagers.monitoring.coreos.com"
}, },
"spec": { "spec": {
"additionalPrinterColumns": [
{
"JSONPath": ".spec.version",
"description": "The version of Alertmanager",
"name": "Version",
"type": "string"
},
{
"JSONPath": ".spec.replicas",
"description": "The desired replicas number of Alertmanagers",
"name": "Replicas",
"type": "integer"
},
{
"JSONPath": ".metadata.creationTimestamp",
"name": "Age",
"type": "date"
}
],
"group": "monitoring.coreos.com", "group": "monitoring.coreos.com",
"names": { "names": {
"kind": "Alertmanager", "kind": "Alertmanager",
@ -36,8 +17,29 @@
"singular": "alertmanager" "singular": "alertmanager"
}, },
"scope": "Namespaced", "scope": "Namespaced",
"subresources": { }, "versions": [
"validation": { {
"additionalPrinterColumns": [
{
"description": "The version of Alertmanager",
"jsonPath": ".spec.version",
"name": "Version",
"type": "string"
},
{
"description": "The desired replicas number of Alertmanagers",
"jsonPath": ".spec.replicas",
"name": "Replicas",
"type": "integer"
},
{
"jsonPath": ".metadata.creationTimestamp",
"name": "Age",
"type": "date"
}
],
"name": "v1",
"schema": {
"openAPIV3Schema": { "openAPIV3Schema": {
"description": "Alertmanager describes an Alertmanager cluster.", "description": "Alertmanager describes an Alertmanager cluster.",
"properties": { "properties": {
@ -544,6 +546,10 @@
"description": "Base image that is used to deploy pods, without tag.", "description": "Base image that is used to deploy pods, without tag.",
"type": "string" "type": "string"
}, },
"clusterAdvertiseAddress": {
"description": "ClusterAdvertiseAddress is the explicit address to advertise in cluster. Needs to be provided for non RFC1918 [1] (public) addresses. [1] RFC1918: https://tools.ietf.org/html/rfc1918",
"type": "string"
},
"configMaps": { "configMaps": {
"description": "ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods. The ConfigMaps are mounted into /etc/alertmanager/configmaps/<configmap-name>.", "description": "ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods. The ConfigMaps are mounted into /etc/alertmanager/configmaps/<configmap-name>.",
"items": { "items": {
@ -1323,15 +1329,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -1341,7 +1347,7 @@
"type": "object" "type": "object"
}, },
"startupProbe": { "startupProbe": {
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is an alpha feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
"properties": { "properties": {
"exec": { "exec": {
"description": "One and only one of the following should be specified. Exec specifies the action to take.", "description": "One and only one of the following should be specified. Exec specifies the action to take.",
@ -1485,7 +1491,7 @@
"type": "boolean" "type": "boolean"
}, },
"volumeDevices": { "volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "description": "volumeDevices is the list of block devices to be used by the container.",
"items": { "items": {
"description": "volumeDevice describes a mapping of a raw block device within a container.", "description": "volumeDevice describes a mapping of a raw block device within a container.",
"properties": { "properties": {
@ -2346,15 +2352,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -2364,7 +2370,7 @@
"type": "object" "type": "object"
}, },
"startupProbe": { "startupProbe": {
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is an alpha feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
"properties": { "properties": {
"exec": { "exec": {
"description": "One and only one of the following should be specified. Exec specifies the action to take.", "description": "One and only one of the following should be specified. Exec specifies the action to take.",
@ -2508,7 +2514,7 @@
"type": "boolean" "type": "boolean"
}, },
"volumeDevices": { "volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "description": "volumeDevices is the list of block devices to be used by the container.",
"items": { "items": {
"description": "volumeDevice describes a mapping of a raw block device within a container.", "description": "volumeDevice describes a mapping of a raw block device within a container.",
"properties": { "properties": {
@ -2618,6 +2624,10 @@
}, },
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
"type": "object" "type": "object"
},
"name": {
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
} }
}, },
"type": "object" "type": "object"
@ -2678,6 +2688,10 @@
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
"fsGroupChangePolicy": {
"description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified defaults to \"Always\".",
"type": "string"
},
"runAsGroup": { "runAsGroup": {
"description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.",
"format": "int64", "format": "int64",
@ -2748,15 +2762,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -2776,6 +2790,10 @@
"storage": { "storage": {
"description": "Storage is the definition of how storage will be used by the Alertmanager instances.", "description": "Storage is the definition of how storage will be used by the Alertmanager instances.",
"properties": { "properties": {
"disableMountSubPath": {
"description": "Deprecated: subPath usage will be disabled by default in a future release, this option will become unnecessary. DisableMountSubPath allows to remove any subPath usage in volume mounts.",
"type": "boolean"
},
"emptyDir": { "emptyDir": {
"description": "EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir", "description": "EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir",
"properties": { "properties": {
@ -2802,7 +2820,27 @@
"type": "string" "type": "string"
}, },
"metadata": { "metadata": {
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", "description": "EmbeddedMetadata contains metadata relevant to an EmbeddedResource.",
"properties": {
"annotations": {
"additionalProperties": {
"type": "string"
},
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
"type": "object"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
"type": "object"
},
"name": {
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
}
},
"type": "object" "type": "object"
}, },
"spec": { "spec": {
@ -2816,7 +2854,7 @@
"type": "array" "type": "array"
}, },
"dataSource": { "dataSource": {
"description": "This field requires the VolumeSnapshotDataSource alpha feature gate to be enabled and currently VolumeSnapshot is the only supported data source. If the provisioner can support VolumeSnapshot data source, it will create a new volume and data will be restored to the volume at the same time. If the provisioner does not support VolumeSnapshot data source, volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.", "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.",
"properties": { "properties": {
"apiGroup": { "apiGroup": {
"description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
@ -2904,7 +2942,7 @@
"type": "string" "type": "string"
}, },
"volumeMode": { "volumeMode": {
"description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.", "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.",
"type": "string" "type": "string"
}, },
"volumeName": { "volumeName": {
@ -4200,12 +4238,9 @@
"type": "object" "type": "object"
} }
}, },
"version": "v1",
"versions": [
{
"name": "v1",
"served": true, "served": true,
"storage": true "storage": true,
"subresources": { }
} }
] ]
}, },

View File

@ -1,5 +1,5 @@
{ {
"apiVersion": "apiextensions.k8s.io/v1beta1", "apiVersion": "apiextensions.k8s.io/v1",
"kind": "CustomResourceDefinition", "kind": "CustomResourceDefinition",
"metadata": { "metadata": {
"annotations": { "annotations": {
@ -17,7 +17,10 @@
"singular": "podmonitor" "singular": "podmonitor"
}, },
"scope": "Namespaced", "scope": "Namespaced",
"validation": { "versions": [
{
"name": "v1",
"schema": {
"openAPIV3Schema": { "openAPIV3Schema": {
"description": "PodMonitor defines monitoring for a set of pods.", "description": "PodMonitor defines monitoring for a set of pods.",
"properties": { "properties": {
@ -130,7 +133,7 @@
"type": "string" "type": "string"
}, },
"port": { "port": {
"description": "Name of the port this endpoint refers to. Mutually exclusive with targetPort.", "description": "Name of the pod port this endpoint refers to. Mutually exclusive with targetPort.",
"type": "string" "type": "string"
}, },
"proxyUrl": { "proxyUrl": {
@ -196,7 +199,7 @@
"type": "string" "type": "string"
} }
], ],
"description": "Name or number of the target port of the endpoint. Mutually exclusive with port.", "description": "Deprecated: Use 'port' instead.",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
} }
}, },
@ -272,10 +275,6 @@
"type": "object" "type": "object"
} }
}, },
"version": "v1",
"versions": [
{
"name": "v1",
"served": true, "served": true,
"storage": true "storage": true
} }

View File

@ -1,4 +1,4 @@
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
@ -13,7 +13,9 @@ spec:
plural: podmonitors plural: podmonitors
singular: podmonitor singular: podmonitor
scope: Namespaced scope: Namespaced
validation: versions:
- name: v1
schema:
openAPIV3Schema: openAPIV3Schema:
description: PodMonitor defines monitoring for a set of pods. description: PodMonitor defines monitoring for a set of pods.
properties: properties:
@ -53,8 +55,8 @@ spec:
podMetricsEndpoints: podMetricsEndpoints:
description: A list of endpoints allowed as part of this PodMonitor. description: A list of endpoints allowed as part of this PodMonitor.
items: items:
description: PodMetricsEndpoint defines a scrapeable endpoint of a description: PodMetricsEndpoint defines a scrapeable endpoint of
Kubernetes Pod serving Prometheus metrics. a Kubernetes Pod serving Prometheus metrics.
properties: properties:
honorLabels: honorLabels:
description: HonorLabels chooses the metric's labels on collisions description: HonorLabels chooses the metric's labels on collisions
@ -68,20 +70,21 @@ spec:
description: Interval at which metrics should be scraped description: Interval at which metrics should be scraped
type: string type: string
metricRelabelings: metricRelabelings:
description: MetricRelabelConfigs to apply to samples before ingestion. description: MetricRelabelConfigs to apply to samples before
ingestion.
items: items:
description: 'RelabelConfig allows dynamic rewriting of the description: 'RelabelConfig allows dynamic rewriting of the
label set, being applied to samples before ingestion. It defines label set, being applied to samples before ingestion. It
`<metric_relabel_configs>`-section of Prometheus configuration. defines `<metric_relabel_configs>`-section of Prometheus
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs' configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
properties: properties:
action: action:
description: Action to perform based on regex matching. description: Action to perform based on regex matching.
Default is 'replace' Default is 'replace'
type: string type: string
modulus: modulus:
description: Modulus to take of the hash of the source label description: Modulus to take of the hash of the source
values. label values.
format: int64 format: int64
type: integer type: integer
regex: regex:
@ -100,8 +103,8 @@ spec:
sourceLabels: sourceLabels:
description: The source labels select values from existing description: The source labels select values from existing
labels. Their content is concatenated using the configured labels. Their content is concatenated using the configured
separator and matched against the configured regular expression separator and matched against the configured regular
for the replace, keep, and drop actions. expression for the replace, keep, and drop actions.
items: items:
type: string type: string
type: array type: array
@ -123,7 +126,7 @@ spec:
description: HTTP path to scrape for metrics. description: HTTP path to scrape for metrics.
type: string type: string
port: port:
description: Name of the port this endpoint refers to. Mutually description: Name of the pod port this endpoint refers to. Mutually
exclusive with targetPort. exclusive with targetPort.
type: string type: string
proxyUrl: proxyUrl:
@ -135,17 +138,17 @@ spec:
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config' More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
items: items:
description: 'RelabelConfig allows dynamic rewriting of the description: 'RelabelConfig allows dynamic rewriting of the
label set, being applied to samples before ingestion. It defines label set, being applied to samples before ingestion. It
`<metric_relabel_configs>`-section of Prometheus configuration. defines `<metric_relabel_configs>`-section of Prometheus
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs' configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
properties: properties:
action: action:
description: Action to perform based on regex matching. description: Action to perform based on regex matching.
Default is 'replace' Default is 'replace'
type: string type: string
modulus: modulus:
description: Modulus to take of the hash of the source label description: Modulus to take of the hash of the source
values. label values.
format: int64 format: int64
type: integer type: integer
regex: regex:
@ -164,8 +167,8 @@ spec:
sourceLabels: sourceLabels:
description: The source labels select values from existing description: The source labels select values from existing
labels. Their content is concatenated using the configured labels. Their content is concatenated using the configured
separator and matched against the configured regular expression separator and matched against the configured regular
for the replace, keep, and drop actions. expression for the replace, keep, and drop actions.
items: items:
type: string type: string
type: array type: array
@ -186,8 +189,7 @@ spec:
anyOf: anyOf:
- type: integer - type: integer
- type: string - type: string
description: Name or number of the target port of the endpoint. description: 'Deprecated: Use ''port'' instead.'
Mutually exclusive with port.
x-kubernetes-int-or-string: true x-kubernetes-int-or-string: true
type: object type: object
type: array type: array
@ -209,24 +211,25 @@ spec:
description: matchExpressions is a list of label selector requirements. description: matchExpressions is a list of label selector requirements.
The requirements are ANDed. The requirements are ANDed.
items: items:
description: A label selector requirement is a selector that contains description: A label selector requirement is a selector that
values, a key, and an operator that relates the key and values. contains values, a key, and an operator that relates the key
and values.
properties: properties:
key: key:
description: key is the label key that the selector applies description: key is the label key that the selector applies
to. to.
type: string type: string
operator: operator:
description: operator represents a key's relationship to a description: operator represents a key's relationship to
set of values. Valid operators are In, NotIn, Exists and a set of values. Valid operators are In, NotIn, Exists
DoesNotExist. and DoesNotExist.
type: string type: string
values: values:
description: values is an array of string values. If the operator description: values is an array of string values. If the
is In or NotIn, the values array must be non-empty. If the operator is In or NotIn, the values array must be non-empty.
operator is Exists or DoesNotExist, the values array must If the operator is Exists or DoesNotExist, the values
be empty. This array is replaced during a strategic merge array must be empty. This array is replaced during a strategic
patch. merge patch.
items: items:
type: string type: string
type: array type: array
@ -240,8 +243,8 @@ spec:
type: string type: string
description: matchLabels is a map of {key,value} pairs. A single description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element {key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator is of matchExpressions, whose key field is "key", the operator
"In", and the values array contains only "value". The requirements is "In", and the values array contains only "value". The requirements
are ANDed. are ANDed.
type: object type: object
type: object type: object
@ -252,9 +255,6 @@ spec:
required: required:
- spec - spec
type: object type: object
version: v1
versions:
- name: v1
served: true served: true
storage: true storage: true
status: status:

View File

@ -1,5 +1,5 @@
{ {
"apiVersion": "apiextensions.k8s.io/v1beta1", "apiVersion": "apiextensions.k8s.io/v1",
"kind": "CustomResourceDefinition", "kind": "CustomResourceDefinition",
"metadata": { "metadata": {
"annotations": { "annotations": {
@ -9,25 +9,6 @@
"name": "prometheuses.monitoring.coreos.com" "name": "prometheuses.monitoring.coreos.com"
}, },
"spec": { "spec": {
"additionalPrinterColumns": [
{
"JSONPath": ".spec.version",
"description": "The version of Prometheus",
"name": "Version",
"type": "string"
},
{
"JSONPath": ".spec.replicas",
"description": "The desired replicas number of Prometheuses",
"name": "Replicas",
"type": "integer"
},
{
"JSONPath": ".metadata.creationTimestamp",
"name": "Age",
"type": "date"
}
],
"group": "monitoring.coreos.com", "group": "monitoring.coreos.com",
"names": { "names": {
"kind": "Prometheus", "kind": "Prometheus",
@ -36,8 +17,29 @@
"singular": "prometheus" "singular": "prometheus"
}, },
"scope": "Namespaced", "scope": "Namespaced",
"subresources": { }, "versions": [
"validation": { {
"additionalPrinterColumns": [
{
"description": "The version of Prometheus",
"jsonPath": ".spec.version",
"name": "Version",
"type": "string"
},
{
"description": "The desired replicas number of Prometheuses",
"jsonPath": ".spec.replicas",
"name": "Replicas",
"type": "integer"
},
{
"jsonPath": ".metadata.creationTimestamp",
"name": "Age",
"type": "date"
}
],
"name": "v1",
"schema": {
"openAPIV3Schema": { "openAPIV3Schema": {
"description": "Prometheus defines a Prometheus deployment.", "description": "Prometheus defines a Prometheus deployment.",
"properties": { "properties": {
@ -1799,15 +1801,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -1817,7 +1819,7 @@
"type": "object" "type": "object"
}, },
"startupProbe": { "startupProbe": {
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is an alpha feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
"properties": { "properties": {
"exec": { "exec": {
"description": "One and only one of the following should be specified. Exec specifies the action to take.", "description": "One and only one of the following should be specified. Exec specifies the action to take.",
@ -1961,7 +1963,7 @@
"type": "boolean" "type": "boolean"
}, },
"volumeDevices": { "volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "description": "volumeDevices is the list of block devices to be used by the container.",
"items": { "items": {
"description": "volumeDevice describes a mapping of a raw block device within a container.", "description": "volumeDevice describes a mapping of a raw block device within a container.",
"properties": { "properties": {
@ -2849,15 +2851,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -2867,7 +2869,7 @@
"type": "object" "type": "object"
}, },
"startupProbe": { "startupProbe": {
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is an alpha feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
"properties": { "properties": {
"exec": { "exec": {
"description": "One and only one of the following should be specified. Exec specifies the action to take.", "description": "One and only one of the following should be specified. Exec specifies the action to take.",
@ -3011,7 +3013,7 @@
"type": "boolean" "type": "boolean"
}, },
"volumeDevices": { "volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "description": "volumeDevices is the list of block devices to be used by the container.",
"items": { "items": {
"description": "volumeDevice describes a mapping of a raw block device within a container.", "description": "volumeDevice describes a mapping of a raw block device within a container.",
"properties": { "properties": {
@ -3129,6 +3131,10 @@
}, },
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
"type": "object" "type": "object"
},
"name": {
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
} }
}, },
"type": "object" "type": "object"
@ -3176,7 +3182,7 @@
"type": "object" "type": "object"
}, },
"podMonitorSelector": { "podMonitorSelector": {
"description": "*Experimental* PodMonitors to be selected for target discovery.", "description": "*Experimental* PodMonitors to be selected for target discovery. *Deprecated:* if neither this nor serviceMonitorSelector are specified, configuration is unmanaged.",
"properties": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
@ -3253,6 +3259,10 @@
}, },
"type": "object" "type": "object"
}, },
"queryLogFile": {
"description": "QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable, and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such as `/dev/stdout` to log querie information to the default Prometheus log stream. This is only available in versions of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)",
"type": "string"
},
"remoteRead": { "remoteRead": {
"description": "If specified, the remote_read spec. This is an experimental feature, it may change in any upcoming release in a breaking way.", "description": "If specified, the remote_read spec. This is an experimental feature, it may change in any upcoming release in a breaking way.",
"items": { "items": {
@ -3314,6 +3324,10 @@
"description": "File to read bearer token for remote read.", "description": "File to read bearer token for remote read.",
"type": "string" "type": "string"
}, },
"name": {
"description": "The name of the remote read queue, must be unique if specified. The name is used in metrics and logging in order to differentiate read configurations. Only valid in Prometheus versions 2.15.0 and newer.",
"type": "string"
},
"proxyUrl": { "proxyUrl": {
"description": "Optional ProxyURL", "description": "Optional ProxyURL",
"type": "string" "type": "string"
@ -3549,6 +3563,10 @@
"description": "File to read bearer token for remote write.", "description": "File to read bearer token for remote write.",
"type": "string" "type": "string"
}, },
"name": {
"description": "The name of the remote write queue, must be unique if specified. The name is used in metrics and logging in order to differentiate queues. Only valid in Prometheus versions 2.15.0 and newer.",
"type": "string"
},
"proxyUrl": { "proxyUrl": {
"description": "Optional ProxyURL", "description": "Optional ProxyURL",
"type": "string" "type": "string"
@ -3876,7 +3894,7 @@
"type": "object" "type": "object"
}, },
"ruleSelector": { "ruleSelector": {
"description": "A selector to select which PrometheusRules to mount for loading alerting rules from. Until (excluding) Prometheus Operator v0.24.0 Prometheus Operator will migrate any legacy rule ConfigMaps to PrometheusRule custom resources selected by RuleSelector. Make sure it does not match any config maps that you do not want to be migrated.", "description": "A selector to select which PrometheusRules to mount for loading alerting/recording rules from. Until (excluding) Prometheus Operator v0.24.0 Prometheus Operator will migrate any legacy rule ConfigMaps to PrometheusRule custom resources selected by RuleSelector. Make sure it does not match any config maps that you do not want to be migrated.",
"properties": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
@ -3960,6 +3978,10 @@
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
"fsGroupChangePolicy": {
"description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified defaults to \"Always\".",
"type": "string"
},
"runAsGroup": { "runAsGroup": {
"description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.",
"format": "int64", "format": "int64",
@ -4030,15 +4052,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -4094,7 +4116,7 @@
"type": "object" "type": "object"
}, },
"serviceMonitorSelector": { "serviceMonitorSelector": {
"description": "ServiceMonitors to be selected for target discovery.", "description": "ServiceMonitors to be selected for target discovery. *Deprecated:* if neither this nor podMonitorSelector are specified, configuration is unmanaged.",
"properties": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
@ -4142,6 +4164,10 @@
"storage": { "storage": {
"description": "Storage spec to specify how storage shall be used.", "description": "Storage spec to specify how storage shall be used.",
"properties": { "properties": {
"disableMountSubPath": {
"description": "Deprecated: subPath usage will be disabled by default in a future release, this option will become unnecessary. DisableMountSubPath allows to remove any subPath usage in volume mounts.",
"type": "boolean"
},
"emptyDir": { "emptyDir": {
"description": "EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir", "description": "EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir",
"properties": { "properties": {
@ -4168,7 +4194,27 @@
"type": "string" "type": "string"
}, },
"metadata": { "metadata": {
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", "description": "EmbeddedMetadata contains metadata relevant to an EmbeddedResource.",
"properties": {
"annotations": {
"additionalProperties": {
"type": "string"
},
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
"type": "object"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
"type": "object"
},
"name": {
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
}
},
"type": "object" "type": "object"
}, },
"spec": { "spec": {
@ -4182,7 +4228,7 @@
"type": "array" "type": "array"
}, },
"dataSource": { "dataSource": {
"description": "This field requires the VolumeSnapshotDataSource alpha feature gate to be enabled and currently VolumeSnapshot is the only supported data source. If the provisioner can support VolumeSnapshot data source, it will create a new volume and data will be restored to the volume at the same time. If the provisioner does not support VolumeSnapshot data source, volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.", "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.",
"properties": { "properties": {
"apiGroup": { "apiGroup": {
"description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
@ -4270,7 +4316,7 @@
"type": "string" "type": "string"
}, },
"volumeMode": { "volumeMode": {
"description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.", "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.",
"type": "string" "type": "string"
}, },
"volumeName": { "volumeName": {
@ -4360,6 +4406,149 @@
"description": "Thanos base image if other than default.", "description": "Thanos base image if other than default.",
"type": "string" "type": "string"
}, },
"grpcServerTlsConfig": {
"description": "GRPCServerTLSConfig configures the gRPC server from which Thanos Querier reads recorded rule data. Note: Currently only the CAFile, CertFile, and KeyFile fields are supported. Maps to the '--grpc-server-tls-*' CLI args.",
"properties": {
"ca": {
"description": "Stuct containing the CA cert to use for the targets.",
"properties": {
"configMap": {
"description": "ConfigMap containing data to use for the targets.",
"properties": {
"key": {
"description": "The key to select.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the ConfigMap or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"secret": {
"description": "Secret containing data to use for the targets.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
}
},
"type": "object"
},
"caFile": {
"description": "Path to the CA cert in the Prometheus container to use for the targets.",
"type": "string"
},
"cert": {
"description": "Struct containing the client cert file for the targets.",
"properties": {
"configMap": {
"description": "ConfigMap containing data to use for the targets.",
"properties": {
"key": {
"description": "The key to select.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the ConfigMap or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"secret": {
"description": "Secret containing data to use for the targets.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
}
},
"type": "object"
},
"certFile": {
"description": "Path to the client cert file in the Prometheus container for the targets.",
"type": "string"
},
"insecureSkipVerify": {
"description": "Disable target certificate validation.",
"type": "boolean"
},
"keyFile": {
"description": "Path to the client key file in the Prometheus container for the targets.",
"type": "string"
},
"keySecret": {
"description": "Secret containing the client key file for the targets.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"serverName": {
"description": "Used to verify the hostname for the targets.",
"type": "string"
}
},
"type": "object"
},
"image": { "image": {
"description": "Image if specified has precedence over baseImage, tag and sha combinations. Specifying the version is still necessary to ensure the Prometheus Operator knows what version of Thanos is being configured.", "description": "Image if specified has precedence over baseImage, tag and sha combinations. Specifying the version is still necessary to ensure the Prometheus Operator knows what version of Thanos is being configured.",
"type": "string" "type": "string"
@ -4368,6 +4557,14 @@
"description": "ListenLocal makes the Thanos sidecar listen on loopback, so that it does not bind against the Pod IP.", "description": "ListenLocal makes the Thanos sidecar listen on loopback, so that it does not bind against the Pod IP.",
"type": "boolean" "type": "boolean"
}, },
"logFormat": {
"description": "LogFormat for Thanos sidecar to be configured with.",
"type": "string"
},
"logLevel": {
"description": "LogLevel for Thanos sidecar to be configured with.",
"type": "string"
},
"objectStorageConfig": { "objectStorageConfig": {
"description": "ObjectStorageConfig configures object storage in Thanos.", "description": "ObjectStorageConfig configures object storage in Thanos.",
"properties": { "properties": {
@ -4480,6 +4677,44 @@
"description": "Version of Prometheus to be deployed.", "description": "Version of Prometheus to be deployed.",
"type": "string" "type": "string"
}, },
"volumeMounts": {
"description": "VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the prometheus container, that are generated as a result of StorageSpec objects.",
"items": {
"description": "VolumeMount describes a mounting of a Volume within a container.",
"properties": {
"mountPath": {
"description": "Path within the container at which the volume should be mounted. Must not contain ':'.",
"type": "string"
},
"mountPropagation": {
"description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.",
"type": "string"
},
"name": {
"description": "This must match the Name of a Volume.",
"type": "string"
},
"readOnly": {
"description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.",
"type": "boolean"
},
"subPath": {
"description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).",
"type": "string"
},
"subPathExpr": {
"description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.",
"type": "string"
}
},
"required": [
"mountPath",
"name"
],
"type": "object"
},
"type": "array"
},
"volumes": { "volumes": {
"description": "Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", "description": "Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.",
"items": { "items": {
@ -5624,12 +5859,9 @@
"type": "object" "type": "object"
} }
}, },
"version": "v1",
"versions": [
{
"name": "v1",
"served": true, "served": true,
"storage": true "storage": true,
"subresources": { }
} }
] ]
}, },

View File

@ -1,5 +1,5 @@
{ {
"apiVersion": "apiextensions.k8s.io/v1beta1", "apiVersion": "apiextensions.k8s.io/v1",
"kind": "CustomResourceDefinition", "kind": "CustomResourceDefinition",
"metadata": { "metadata": {
"annotations": { "annotations": {
@ -17,7 +17,10 @@
"singular": "prometheusrule" "singular": "prometheusrule"
}, },
"scope": "Namespaced", "scope": "Namespaced",
"validation": { "versions": [
{
"name": "v1",
"schema": {
"openAPIV3Schema": { "openAPIV3Schema": {
"description": "PrometheusRule defines alerting rules for a Prometheus instance", "description": "PrometheusRule defines alerting rules for a Prometheus instance",
"properties": { "properties": {
@ -112,10 +115,6 @@
"type": "object" "type": "object"
} }
}, },
"version": "v1",
"versions": [
{
"name": "v1",
"served": true, "served": true,
"storage": true "storage": true
} }

View File

@ -1,4 +1,4 @@
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
@ -13,7 +13,9 @@ spec:
plural: prometheusrules plural: prometheusrules
singular: prometheusrule singular: prometheusrule
scope: Namespaced scope: Namespaced
validation: versions:
- name: v1
schema:
openAPIV3Schema: openAPIV3Schema:
description: PrometheusRule defines alerting rules for a Prometheus instance description: PrometheusRule defines alerting rules for a Prometheus instance
properties: properties:
@ -36,8 +38,8 @@ spec:
description: Content of Prometheus rule file description: Content of Prometheus rule file
items: items:
description: 'RuleGroup is a list of sequentially evaluated recording description: 'RuleGroup is a list of sequentially evaluated recording
and alerting rules. Note: PartialResponseStrategy is only used by and alerting rules. Note: PartialResponseStrategy is only used
ThanosRuler and will be ignored by Prometheus instances. Valid by ThanosRuler and will be ignored by Prometheus instances. Valid
values for this field are ''warn'' or ''abort''. More info: https://github.com/thanos-io/thanos/blob/master/docs/components/rule.md#partial-response' values for this field are ''warn'' or ''abort''. More info: https://github.com/thanos-io/thanos/blob/master/docs/components/rule.md#partial-response'
properties: properties:
interval: interval:
@ -82,9 +84,6 @@ spec:
required: required:
- spec - spec
type: object type: object
version: v1
versions:
- name: v1
served: true served: true
storage: true storage: true
status: status:

View File

@ -1,5 +1,5 @@
{ {
"apiVersion": "apiextensions.k8s.io/v1beta1", "apiVersion": "apiextensions.k8s.io/v1",
"kind": "CustomResourceDefinition", "kind": "CustomResourceDefinition",
"metadata": { "metadata": {
"annotations": { "annotations": {
@ -17,7 +17,10 @@
"singular": "servicemonitor" "singular": "servicemonitor"
}, },
"scope": "Namespaced", "scope": "Namespaced",
"validation": { "versions": [
{
"name": "v1",
"schema": {
"openAPIV3Schema": { "openAPIV3Schema": {
"description": "ServiceMonitor defines monitoring for a set of services.", "description": "ServiceMonitor defines monitoring for a set of services.",
"properties": { "properties": {
@ -248,7 +251,7 @@
"type": "string" "type": "string"
} }
], ],
"description": "Name or number of the target port of the endpoint. Mutually exclusive with port.", "description": "Name or number of the pod port this endpoint refers to. Mutually exclusive with port.",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"tlsConfig": { "tlsConfig": {
@ -495,10 +498,6 @@
"type": "object" "type": "object"
} }
}, },
"version": "v1",
"versions": [
{
"name": "v1",
"served": true, "served": true,
"storage": true "storage": true
} }

View File

@ -1,4 +1,4 @@
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
@ -13,7 +13,9 @@ spec:
plural: servicemonitors plural: servicemonitors
singular: servicemonitor singular: servicemonitor
scope: Namespaced scope: Namespaced
validation: versions:
- name: v1
schema:
openAPIV3Schema: openAPIV3Schema:
description: ServiceMonitor defines monitoring for a set of services. description: ServiceMonitor defines monitoring for a set of services.
properties: properties:
@ -44,8 +46,8 @@ spec:
basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints' basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints'
properties: properties:
password: password:
description: The secret in the service monitor namespace that description: The secret in the service monitor namespace
contains the password for authentication. that contains the password for authentication.
properties: properties:
key: key:
description: The key of the secret to select from. Must description: The key of the secret to select from. Must
@ -63,8 +65,8 @@ spec:
- key - key
type: object type: object
username: username:
description: The secret in the service monitor namespace that description: The secret in the service monitor namespace
contains the username for authentication. that contains the username for authentication.
properties: properties:
key: key:
description: The key of the secret to select from. Must description: The key of the secret to select from. Must
@ -91,16 +93,16 @@ spec:
service monitor and accessible by the Prometheus Operator. service monitor and accessible by the Prometheus Operator.
properties: properties:
key: key:
description: The key of the secret to select from. Must be description: The key of the secret to select from. Must
a valid secret key. be a valid secret key.
type: string type: string
name: name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?' TODO: Add other useful fields. apiVersion, kind, uid?'
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be description: Specify whether the Secret or its key must
defined be defined
type: boolean type: boolean
required: required:
- key - key
@ -117,20 +119,21 @@ spec:
description: Interval at which metrics should be scraped description: Interval at which metrics should be scraped
type: string type: string
metricRelabelings: metricRelabelings:
description: MetricRelabelConfigs to apply to samples before ingestion. description: MetricRelabelConfigs to apply to samples before
ingestion.
items: items:
description: 'RelabelConfig allows dynamic rewriting of the description: 'RelabelConfig allows dynamic rewriting of the
label set, being applied to samples before ingestion. It defines label set, being applied to samples before ingestion. It
`<metric_relabel_configs>`-section of Prometheus configuration. defines `<metric_relabel_configs>`-section of Prometheus
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs' configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
properties: properties:
action: action:
description: Action to perform based on regex matching. description: Action to perform based on regex matching.
Default is 'replace' Default is 'replace'
type: string type: string
modulus: modulus:
description: Modulus to take of the hash of the source label description: Modulus to take of the hash of the source
values. label values.
format: int64 format: int64
type: integer type: integer
regex: regex:
@ -149,8 +152,8 @@ spec:
sourceLabels: sourceLabels:
description: The source labels select values from existing description: The source labels select values from existing
labels. Their content is concatenated using the configured labels. Their content is concatenated using the configured
separator and matched against the configured regular expression separator and matched against the configured regular
for the replace, keep, and drop actions. expression for the replace, keep, and drop actions.
items: items:
type: string type: string
type: array type: array
@ -184,17 +187,17 @@ spec:
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config' More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
items: items:
description: 'RelabelConfig allows dynamic rewriting of the description: 'RelabelConfig allows dynamic rewriting of the
label set, being applied to samples before ingestion. It defines label set, being applied to samples before ingestion. It
`<metric_relabel_configs>`-section of Prometheus configuration. defines `<metric_relabel_configs>`-section of Prometheus
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs' configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
properties: properties:
action: action:
description: Action to perform based on regex matching. description: Action to perform based on regex matching.
Default is 'replace' Default is 'replace'
type: string type: string
modulus: modulus:
description: Modulus to take of the hash of the source label description: Modulus to take of the hash of the source
values. label values.
format: int64 format: int64
type: integer type: integer
regex: regex:
@ -213,8 +216,8 @@ spec:
sourceLabels: sourceLabels:
description: The source labels select values from existing description: The source labels select values from existing
labels. Their content is concatenated using the configured labels. Their content is concatenated using the configured
separator and matched against the configured regular expression separator and matched against the configured regular
for the replace, keep, and drop actions. expression for the replace, keep, and drop actions.
items: items:
type: string type: string
type: array type: array
@ -235,14 +238,15 @@ spec:
anyOf: anyOf:
- type: integer - type: integer
- type: string - type: string
description: Name or number of the target port of the endpoint. description: Name or number of the pod port this endpoint refers
Mutually exclusive with port. to. Mutually exclusive with port.
x-kubernetes-int-or-string: true x-kubernetes-int-or-string: true
tlsConfig: tlsConfig:
description: TLS configuration to use when scraping the endpoint description: TLS configuration to use when scraping the endpoint
properties: properties:
ca: ca:
description: Stuct containing the CA cert to use for the targets. description: Stuct containing the CA cert to use for the
targets.
properties: properties:
configMap: configMap:
description: ConfigMap containing data to use for the description: ConfigMap containing data to use for the
@ -288,8 +292,8 @@ spec:
to use for the targets. to use for the targets.
type: string type: string
cert: cert:
description: Struct containing the client cert file for the description: Struct containing the client cert file for
targets. the targets.
properties: properties:
configMap: configMap:
description: ConfigMap containing data to use for the description: ConfigMap containing data to use for the
@ -401,24 +405,25 @@ spec:
description: matchExpressions is a list of label selector requirements. description: matchExpressions is a list of label selector requirements.
The requirements are ANDed. The requirements are ANDed.
items: items:
description: A label selector requirement is a selector that contains description: A label selector requirement is a selector that
values, a key, and an operator that relates the key and values. contains values, a key, and an operator that relates the key
and values.
properties: properties:
key: key:
description: key is the label key that the selector applies description: key is the label key that the selector applies
to. to.
type: string type: string
operator: operator:
description: operator represents a key's relationship to a description: operator represents a key's relationship to
set of values. Valid operators are In, NotIn, Exists and a set of values. Valid operators are In, NotIn, Exists
DoesNotExist. and DoesNotExist.
type: string type: string
values: values:
description: values is an array of string values. If the operator description: values is an array of string values. If the
is In or NotIn, the values array must be non-empty. If the operator is In or NotIn, the values array must be non-empty.
operator is Exists or DoesNotExist, the values array must If the operator is Exists or DoesNotExist, the values
be empty. This array is replaced during a strategic merge array must be empty. This array is replaced during a strategic
patch. merge patch.
items: items:
type: string type: string
type: array type: array
@ -432,8 +437,8 @@ spec:
type: string type: string
description: matchLabels is a map of {key,value} pairs. A single description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element {key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator is of matchExpressions, whose key field is "key", the operator
"In", and the values array contains only "value". The requirements is "In", and the values array contains only "value". The requirements
are ANDed. are ANDed.
type: object type: object
type: object type: object
@ -450,9 +455,6 @@ spec:
required: required:
- spec - spec
type: object type: object
version: v1
versions:
- name: v1
served: true served: true
storage: true storage: true
status: status:

View File

@ -1,5 +1,5 @@
{ {
"apiVersion": "apiextensions.k8s.io/v1beta1", "apiVersion": "apiextensions.k8s.io/v1",
"kind": "CustomResourceDefinition", "kind": "CustomResourceDefinition",
"metadata": { "metadata": {
"annotations": { "annotations": {
@ -17,7 +17,10 @@
"singular": "thanosruler" "singular": "thanosruler"
}, },
"scope": "Namespaced", "scope": "Namespaced",
"validation": { "versions": [
{
"name": "v1",
"schema": {
"openAPIV3Schema": { "openAPIV3Schema": {
"description": "ThanosRuler defines a ThanosRuler deployment.", "description": "ThanosRuler defines a ThanosRuler deployment.",
"properties": { "properties": {
@ -520,6 +523,10 @@
}, },
"type": "array" "type": "array"
}, },
"alertQueryUrl": {
"description": "The external Query URL the Thanos Ruler will set in the 'Source' field of all alerts. Maps to the '--alert.query-url' CLI arg.",
"type": "string"
},
"alertmanagersConfig": { "alertmanagersConfig": {
"description": "Define configuration for connecting to alertmanager. Only available with thanos v0.10.0 and higher. Maps to the `alertmanagers.config` arg.", "description": "Define configuration for connecting to alertmanager. Only available with thanos v0.10.0 and higher. Maps to the `alertmanagers.config` arg.",
"properties": { "properties": {
@ -542,9 +549,12 @@
"type": "object" "type": "object"
}, },
"alertmanagersUrl": { "alertmanagersUrl": {
"description": "Define URL to send alerts to alertmanager. For Thanos v0.10.0 and higher, AlertManagersConfig should be used instead. Maps to the `alertmanagers.url` arg.", "description": "Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, AlertManagersConfig should be used instead. Note: this field will be ignored if AlertManagersConfig is specified. Maps to the `alertmanagers.url` arg.",
"items": {
"type": "string" "type": "string"
}, },
"type": "array"
},
"containers": { "containers": {
"description": "Containers allows injecting additional containers or modifying operator generated containers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or to change the behavior of an operator generated container. Containers described here modify an operator generated container if they share the same name and modifications are done via a strategic merge patch. The current container names are: `thanos-ruler` and `rules-configmap-reloader`. Overriding containers is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", "description": "Containers allows injecting additional containers or modifying operator generated containers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or to change the behavior of an operator generated container. Containers described here modify an operator generated container if they share the same name and modifications are done via a strategic merge patch. The current container names are: `thanos-ruler` and `rules-configmap-reloader`. Overriding containers is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.",
"items": { "items": {
@ -1313,15 +1323,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -1331,7 +1341,7 @@
"type": "object" "type": "object"
}, },
"startupProbe": { "startupProbe": {
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is an alpha feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
"properties": { "properties": {
"exec": { "exec": {
"description": "One and only one of the following should be specified. Exec specifies the action to take.", "description": "One and only one of the following should be specified. Exec specifies the action to take.",
@ -1475,7 +1485,7 @@
"type": "boolean" "type": "boolean"
}, },
"volumeDevices": { "volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "description": "volumeDevices is the list of block devices to be used by the container.",
"items": { "items": {
"description": "volumeDevice describes a mapping of a raw block device within a container.", "description": "volumeDevice describes a mapping of a raw block device within a container.",
"properties": { "properties": {
@ -1558,6 +1568,149 @@
"description": "The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name.", "description": "The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name.",
"type": "string" "type": "string"
}, },
"grpcServerTlsConfig": {
"description": "GRPCServerTLSConfig configures the gRPC server from which Thanos Querier reads recorded rule data. Note: Currently only the CAFile, CertFile, and KeyFile fields are supported. Maps to the '--grpc-server-tls-*' CLI args.",
"properties": {
"ca": {
"description": "Stuct containing the CA cert to use for the targets.",
"properties": {
"configMap": {
"description": "ConfigMap containing data to use for the targets.",
"properties": {
"key": {
"description": "The key to select.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the ConfigMap or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"secret": {
"description": "Secret containing data to use for the targets.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
}
},
"type": "object"
},
"caFile": {
"description": "Path to the CA cert in the Prometheus container to use for the targets.",
"type": "string"
},
"cert": {
"description": "Struct containing the client cert file for the targets.",
"properties": {
"configMap": {
"description": "ConfigMap containing data to use for the targets.",
"properties": {
"key": {
"description": "The key to select.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the ConfigMap or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"secret": {
"description": "Secret containing data to use for the targets.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
}
},
"type": "object"
},
"certFile": {
"description": "Path to the client cert file in the Prometheus container for the targets.",
"type": "string"
},
"insecureSkipVerify": {
"description": "Disable target certificate validation.",
"type": "boolean"
},
"keyFile": {
"description": "Path to the client key file in the Prometheus container for the targets.",
"type": "string"
},
"keySecret": {
"description": "Secret containing the client key file for the targets.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"serverName": {
"description": "Used to verify the hostname for the targets.",
"type": "string"
}
},
"type": "object"
},
"image": { "image": {
"description": "Thanos container image URL.", "description": "Thanos container image URL.",
"type": "string" "type": "string"
@ -2344,15 +2497,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -2362,7 +2515,7 @@
"type": "object" "type": "object"
}, },
"startupProbe": { "startupProbe": {
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is an alpha feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
"properties": { "properties": {
"exec": { "exec": {
"description": "One and only one of the following should be specified. Exec specifies the action to take.", "description": "One and only one of the following should be specified. Exec specifies the action to take.",
@ -2506,7 +2659,7 @@
"type": "boolean" "type": "boolean"
}, },
"volumeDevices": { "volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "description": "volumeDevices is the list of block devices to be used by the container.",
"items": { "items": {
"description": "volumeDevice describes a mapping of a raw block device within a container.", "description": "volumeDevice describes a mapping of a raw block device within a container.",
"properties": { "properties": {
@ -2644,6 +2797,10 @@
}, },
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
"type": "object" "type": "object"
},
"name": {
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
} }
}, },
"type": "object" "type": "object"
@ -2656,6 +2813,27 @@
"description": "Priority class assigned to the Pods", "description": "Priority class assigned to the Pods",
"type": "string" "type": "string"
}, },
"queryConfig": {
"description": "Define configuration for connecting to thanos query instances. If this is defined, the QueryEndpoints field will be ignored. Maps to the `query.config` CLI argument. Only available with thanos v0.11.0 and higher.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object"
},
"queryEndpoints": { "queryEndpoints": {
"description": "QueryEndpoints defines Thanos querier endpoints from which to query metrics. Maps to the --query flag of thanos ruler.", "description": "QueryEndpoints defines Thanos querier endpoints from which to query metrics. Maps to the --query flag of thanos ruler.",
"items": { "items": {
@ -2788,6 +2966,10 @@
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
"fsGroupChangePolicy": {
"description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified defaults to \"Always\".",
"type": "string"
},
"runAsGroup": { "runAsGroup": {
"description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.",
"format": "int64", "format": "int64",
@ -2858,15 +3040,15 @@
"description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"properties": { "properties": {
"gmsaCredentialSpec": { "gmsaCredentialSpec": {
"description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
"type": "string" "type": "string"
}, },
"gmsaCredentialSpecName": { "gmsaCredentialSpecName": {
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.", "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
"type": "string" "type": "string"
}, },
"runAsUserName": { "runAsUserName": {
"description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is beta-level and may be disabled with the WindowsRunAsUserName feature flag.", "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"type": "string" "type": "string"
} }
}, },
@ -2882,6 +3064,10 @@
"storage": { "storage": {
"description": "Storage spec to specify how storage shall be used.", "description": "Storage spec to specify how storage shall be used.",
"properties": { "properties": {
"disableMountSubPath": {
"description": "Deprecated: subPath usage will be disabled by default in a future release, this option will become unnecessary. DisableMountSubPath allows to remove any subPath usage in volume mounts.",
"type": "boolean"
},
"emptyDir": { "emptyDir": {
"description": "EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir", "description": "EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir",
"properties": { "properties": {
@ -2908,7 +3094,27 @@
"type": "string" "type": "string"
}, },
"metadata": { "metadata": {
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", "description": "EmbeddedMetadata contains metadata relevant to an EmbeddedResource.",
"properties": {
"annotations": {
"additionalProperties": {
"type": "string"
},
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
"type": "object"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
"type": "object"
},
"name": {
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
}
},
"type": "object" "type": "object"
}, },
"spec": { "spec": {
@ -2922,7 +3128,7 @@
"type": "array" "type": "array"
}, },
"dataSource": { "dataSource": {
"description": "This field requires the VolumeSnapshotDataSource alpha feature gate to be enabled and currently VolumeSnapshot is the only supported data source. If the provisioner can support VolumeSnapshot data source, it will create a new volume and data will be restored to the volume at the same time. If the provisioner does not support VolumeSnapshot data source, volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.", "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.",
"properties": { "properties": {
"apiGroup": { "apiGroup": {
"description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
@ -3010,7 +3216,7 @@
"type": "string" "type": "string"
}, },
"volumeMode": { "volumeMode": {
"description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.", "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.",
"type": "string" "type": "string"
}, },
"volumeName": { "volumeName": {
@ -4235,9 +4441,6 @@
"type": "array" "type": "array"
} }
}, },
"required": [
"queryEndpoints"
],
"type": "object" "type": "object"
}, },
"status": { "status": {
@ -4284,10 +4487,6 @@
"type": "object" "type": "object"
} }
}, },
"version": "v1",
"versions": [
{
"name": "v1",
"served": true, "served": true,
"storage": true "storage": true
} }

View File

@ -4,29 +4,9 @@ metadata:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
name: prometheus-operator name: prometheus-operator
rules: rules:
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- create
- apiGroups:
- apiextensions.k8s.io
resourceNames:
- alertmanagers.monitoring.coreos.com
- podmonitors.monitoring.coreos.com
- prometheuses.monitoring.coreos.com
- prometheusrules.monitoring.coreos.com
- servicemonitors.monitoring.coreos.com
- thanosrulers.monitoring.coreos.com
resources:
- customresourcedefinitions
verbs:
- get
- update
- apiGroups: - apiGroups:
- monitoring.coreos.com - monitoring.coreos.com
resources: resources:
@ -87,3 +67,15 @@ rules:
- get - get
- list - list
- watch - watch
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create

View File

@ -4,7 +4,7 @@ metadata:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
name: prometheus-operator name: prometheus-operator
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io

View File

@ -4,7 +4,7 @@ metadata:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
name: prometheus-operator name: prometheus-operator
namespace: monitoring namespace: monitoring
spec: spec:
@ -18,15 +18,15 @@ spec:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
spec: spec:
containers: containers:
- args: - args:
- --kubelet-service=kube-system/kubelet - --kubelet-service=kube-system/kubelet
- --logtostderr=true - --logtostderr=true
- --config-reloader-image=carlosedp/configmap-reload:latest - --config-reloader-image=carlosedp/configmap-reload:latest
- --prometheus-config-reloader=carlosedp/prometheus-config-reloader:v0.37.0 - --prometheus-config-reloader=carlosedp/prometheus-config-reloader:v0.39.0
image: carlosedp/prometheus-operator:v0.37.0 image: carlosedp/prometheus-operator:v0.39.0
name: prometheus-operator name: prometheus-operator
ports: ports:
- containerPort: 8080 - containerPort: 8080
@ -40,6 +40,18 @@ spec:
memory: 100Mi memory: 100Mi
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
- args:
- --logtostderr
- --secure-listen-address=:8443
- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- --upstream=http://127.0.0.1:8080/
image: carlosedp/kube-rbac-proxy:v0.5.0
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
securityContext:
runAsUser: 65534
nodeSelector: nodeSelector:
beta.kubernetes.io/os: linux beta.kubernetes.io/os: linux
securityContext: securityContext:

View File

@ -4,15 +4,15 @@ metadata:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
name: prometheus-operator name: prometheus-operator
namespace: monitoring namespace: monitoring
spec: spec:
clusterIP: None clusterIP: None
ports: ports:
- name: http - name: https
port: 8080 port: 8443
targetPort: http targetPort: https
selector: selector:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator

View File

@ -4,6 +4,6 @@ metadata:
labels: labels:
app.kubernetes.io/component: controller app.kubernetes.io/component: controller
app.kubernetes.io/name: prometheus-operator app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: v0.37.0 app.kubernetes.io/version: v0.39.0
name: prometheus-operator name: prometheus-operator
namespace: monitoring namespace: monitoring

View File

@ -20,8 +20,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
// Add custom dashboards // Add custom dashboards
grafanaDashboards+:: { grafanaDashboards+:: {
'elasticsearch-dashboard.json': (import 'grafana-dashboards/elasticsearch-dashboard.json'), 'elasticsearch-dashboard.json': (import '../grafana-dashboards/elasticsearch-dashboard.json'),
'fluentd-dashboard.json': (import 'grafana-dashboards/fluentd-dashboard.json'), 'fluentd-dashboard.json': (import '../grafana-dashboards/fluentd-dashboard.json'),
}, },
}, },

View File

@ -6,7 +6,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
namespace: 'monitoring', namespace: 'monitoring',
// Add custom dashboards // Add custom dashboards
grafanaDashboards+:: { grafanaDashboards+:: {
'traefik-dashboard.json': (import 'grafana-dashboards/traefik-dashboard.json'), 'traefik-dashboard.json': (import '../grafana-dashboards/traefik-dashboard.json'),
}, },
}, },

View File

@ -11,7 +11,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
// Add custom dashboards // Add custom dashboards
grafanaDashboards+:: { grafanaDashboards+:: {
'apc-ups-dashboard.json': (import 'grafana-dashboards/apc-ups-dashboard.json'), 'apc-ups-dashboard.json': (import '../grafana-dashboards/apc-ups-dashboard.json'),
}, },
}, },

View File

@ -8,11 +8,10 @@ export DOCKER_CLI_EXPERIMENTAL=enabled
REPO=carlosedp REPO=carlosedp
export AOR_VERSION=2.3 export AOR_VERSION=2.3
export PROM_ADAPTER_VERSION=v0.6.0 export KSM_VERSION=v1.9.6
export KSM_VERSION=v1.9.5 export PROM_OP_VERSION=v0.39.0
export PROM_OP_VERSION=v0.37.0
export KUBE_RBAC_VERSION=v0.5.0 export KUBE_RBAC_VERSION=v0.5.0
export PROM_CONFIG_RELOADER_VERSION=v0.37.0 export PROM_CONFIG_RELOADER_VERSION=v0.39.0
export CONFIGMAP_RELOAD_VERSION=latest export CONFIGMAP_RELOAD_VERSION=latest
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Kubernetes addon-resizer # Kubernetes addon-resizer
@ -39,32 +38,6 @@ for arch in $ALL_ARCH; do
docker rmi $REPO/$IMAGE:$AOR_VERSION-$arch docker rmi $REPO/$IMAGE:$AOR_VERSION-$arch
done done
#-------------------------------------------------------------------------------
# Prometheus-adapter
# Retag prometheus-adapter from directxman12 images to have unified manifest on DockerHub
ALL_ARCH=(amd64 arm arm64 ppc64le)
IMAGE=k8s-prometheus-adapter
for arch in $ALL_ARCH; do
if [[ $arch == "arm" ]]; then archdocker="arm32v7";
elif [[ $arch == "arm64" ]]; then archdocker="arm64v8";
else archdocker="$arch"; fi
docker pull directxman12/$IMAGE-$arch:$PROM_ADAPTER_VERSION
docker tag directxman12/$IMAGE-$arch:$PROM_ADAPTER_VERSION $REPO/$IMAGE:$PROM_ADAPTER_VERSION-$arch
docker push $REPO/$IMAGE:$PROM_ADAPTER_VERSION-$arch
done
docker manifest create --amend $REPO/$IMAGE:$PROM_ADAPTER_VERSION `echo $ALL_ARCH | sed -e "s~[^ ]*~$REPO/$IMAGE:$PROM_ADAPTER_VERSION\-&~g"`
for arch in $ALL_ARCH; do docker manifest annotate --arch $arch $REPO/$IMAGE:$PROM_ADAPTER_VERSION $REPO/$IMAGE:$PROM_ADAPTER_VERSION-$arch; done
docker manifest push --purge $REPO/$IMAGE:$PROM_ADAPTER_VERSION
for arch in $ALL_ARCH; do
docker rmi directxman12/$IMAGE-$arch:$PROM_ADAPTER_VERSION
docker rmi $REPO/$IMAGE:$PROM_ADAPTER_VERSION-$arch
done
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Kube-state-metrics # Kube-state-metrics
IMAGE=carlosedp/kube-state-metrics IMAGE=carlosedp/kube-state-metrics
@ -113,9 +86,8 @@ for arch in $ALL_ARCH; do
cat Dockerfile |sed -e 's/\.build\/linux-amd64\/operator/operator/' |sed -e "s/^FROM.*/FROM $archdocker\/busybox/" > Dockerfile.custom cat Dockerfile |sed -e 's/\.build\/linux-amd64\/operator/operator/' |sed -e "s/^FROM.*/FROM $archdocker\/busybox/" > Dockerfile.custom
CGO_ENABLED=0 GOOS=linux GOARCH=$arch go build -ldflags="-s -X github.com/coreos/prometheus-operator/pkg/version.Version=$(cat VERSION | tr -d " \t\n\r")" -o operator cmd/operator/main.go CGO_ENABLED=0 GOOS=linux GOARCH=$arch go build -ldflags="-s -X github.com/coreos/prometheus-operator/pkg/version.Version=$(cat VERSION | tr -d " \t\n\r")" -o operator cmd/operator/main.go
rm -rf operator
docker build -t $REPO/prometheus-operator:${PROM_OP_VERSION}-$arch -f Dockerfile.custom . docker build -t $REPO/prometheus-operator:${PROM_OP_VERSION}-$arch -f Dockerfile.custom .
docker push $REPO/prometheus-operator:$PROM_OP_VERSION-arm docker push $REPO/prometheus-operator:$PROM_OP_VERSION-$arch
done done
@ -123,6 +95,7 @@ docker manifest create --amend $IMAGE:$PROM_OP_VERSION `echo $ALL_ARCH | sed -e
for arch in $ALL_ARCH; do docker manifest annotate --arch $arch $IMAGE:$PROM_OP_VERSION $IMAGE:$PROM_OP_VERSION-$arch; done for arch in $ALL_ARCH; do docker manifest annotate --arch $arch $IMAGE:$PROM_OP_VERSION $IMAGE:$PROM_OP_VERSION-$arch; done
docker manifest push --purge $IMAGE:$PROM_OP_VERSION docker manifest push --purge $IMAGE:$PROM_OP_VERSION
for arch in $ALL_ARCH; do for arch in $ALL_ARCH; do
docker rmi $REPO/prometheus-operator:$PROM_OP_VERSION-$arch docker rmi $REPO/prometheus-operator:$PROM_OP_VERSION-$arch
done done
@ -173,7 +146,7 @@ ALL_ARCH=(amd64 arm arm64 ppc64le)
pushd $GOPATH/src/github.com/coreos/prometheus-operator pushd $GOPATH/src/github.com/coreos/prometheus-operator
cd $GOPATH/src/github.com/coreos/prometheus-operator/cmd/prometheus-config-reloader cd $GOPATH/src/github.com/coreos/prometheus-operator/cmd/prometheus-config-reloader
git checkout ${VERSION} git checkout ${PROM_CONFIG_RELOADER_VERSION}
for arch in $ALL_ARCH; do for arch in $ALL_ARCH; do
if [[ $arch == "arm" ]]; then archdocker="arm32v7"; if [[ $arch == "arm" ]]; then archdocker="arm32v7";