Changed the deployment to just the prometheus operator.
This commit is contained in:
parent
5ae390bcea
commit
b8b0fc6765
30 changed files with 8 additions and 2026 deletions
|
@ -24,59 +24,15 @@
|
||||||
- name: Copy files
|
- name: Copy files
|
||||||
copy: src={{roles_path}}/openshift-apps/application-monitoring/files/ dest=/etc/openshift_apps/application-monitoring/
|
copy: src={{roles_path}}/openshift-apps/application-monitoring/files/ dest=/etc/openshift_apps/application-monitoring/
|
||||||
|
|
||||||
- name: AMO CRD
|
- name: Prometheus CRDs
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/crds/applicationmonitoring.integreatly.org_applicationmonitorings_crd.yaml
|
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/
|
||||||
|
|
||||||
- name: AMO Cluster Roles & RoleBindings
|
- name: Prometheus CRD RBAC
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/cluster-roles
|
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/rbac/prometheus-operator-crd/
|
||||||
|
|
||||||
- name: AMO Cluster Roles & RoleBindings - service_account.yaml
|
- name: Prometheus Operator RBAC
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/service_account.yaml
|
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/rbac/prometheus-operator/
|
||||||
|
|
||||||
- name: AMO Cluster Roles & RoleBindings - service_account.yaml
|
- name: Prometheus RBAC
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/service_account.yaml
|
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/rbac/prometheus/
|
||||||
|
|
||||||
- name: AMO Cluster Roles & RoleBindings - role.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/role.yaml
|
|
||||||
|
|
||||||
- name: AMO Cluster Roles & RoleBindings - role_binding.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/role_binding.yaml
|
|
||||||
|
|
||||||
- name: AMO CRD - BLACKBOX
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/crds/applicationmonitoring.integreatly.org_blackboxtargets_crd.yaml
|
|
||||||
|
|
||||||
- name: Grafana CRDs - Grafana.yml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/grafana-operator/deploy/crds/Grafana.yaml
|
|
||||||
|
|
||||||
- name: Grafana CRDs - GrafanaDashboard.yml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/grafana-operator/deploy/crds/GrafanaDashboard.yaml
|
|
||||||
|
|
||||||
- name: Grafana CRDs - GrafanaDataSource.yml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/grafana-operator/deploy/crds/GrafanaDataSource.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_podmonitors.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/rbac/prometheus-operator-crd/prometheus-operator-cluster-roles.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_podmonitors.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_prometheuses.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_alertmanagers.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_prometheusrules.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_servicemonitors.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
|
|
||||||
|
|
||||||
- name: Prometheus CRDs - monitoring.coreos.com_thanosrulers.yaml
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/prometheus-operator/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
|
|
||||||
|
|
||||||
- name: Operator deployment
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/operator.yaml
|
|
||||||
|
|
||||||
- name: ApplicationMonitoring deployment
|
|
||||||
command: oc -n application-monitoring apply -f /etc/openshift_apps/application-monitoring/application-monitoring-operator/deploy/examples/ApplicationMonitoring.yaml
|
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
ORG ?= integreatly
|
|
||||||
NAMESPACE ?= application-monitoring
|
|
||||||
PROJECT ?= application-monitoring-operator
|
|
||||||
REG=quay.io
|
|
||||||
SHELL=/bin/bash
|
|
||||||
PKG=github.com/integr8ly/application-monitoring-operator
|
|
||||||
TEST_DIRS?=$(shell sh -c "find $(TOP_SRC_DIRS) -name \\*_test.go -exec dirname {} \\; | sort | uniq")
|
|
||||||
TEST_POD_NAME=application-monitoring-operator-test
|
|
||||||
COMPILE_TARGET=./tmp/_output/bin/$(PROJECT)
|
|
||||||
# PROMETHEUS_OPERATOR_VERSION is used at install time to import crds
|
|
||||||
# After v0.34.0 the file names for the resources change
|
|
||||||
# If you are updating this version you will need to update the file names in ./scripts/install.sh too
|
|
||||||
# You can delete this comment afterwards.
|
|
||||||
PROMETHEUS_OPERATOR_VERSION=v0.34.0
|
|
||||||
LOCAL=local
|
|
||||||
GRAFANA_OPERATOR_VERSION=v3.8.1
|
|
||||||
AMO_VERSION=1.5.0
|
|
||||||
PREV_AMO_VERSION=1.4.0
|
|
||||||
|
|
||||||
AUTH_TOKEN=$(shell curl -sH "Content-Type: application/json" -XPOST https://quay.io/cnr/api/v1/users/login -d '{"user": {"username": "$(QUAY_USERNAME)", "password": "${QUAY_PASSWORD}"}}' | jq -r '.token')
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: setup/gomod
|
|
||||||
setup/gomod:
|
|
||||||
@echo Running go.mod tidy
|
|
||||||
@go mod tidy
|
|
||||||
@echo Running go.mod vendor
|
|
||||||
@go mod vendor
|
|
||||||
|
|
||||||
.PHONY: setup/travis
|
|
||||||
setup/travis:
|
|
||||||
@echo Installing Operator SDK
|
|
||||||
@curl -Lo operator-sdk https://github.com/operator-framework/operator-sdk/releases/download/v0.8.1/operator-sdk-v0.8.1-x86_64-linux-gnu && chmod +x operator-sdk && sudo mv operator-sdk /usr/local/bin/
|
|
||||||
|
|
||||||
.PHONY: code/run
|
|
||||||
code/run:
|
|
||||||
@operator-sdk up local --namespace=${NAMESPACE}
|
|
||||||
|
|
||||||
.PHONY: code/compile
|
|
||||||
code/compile:
|
|
||||||
@GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o=$(COMPILE_TARGET) ./cmd/manager
|
|
||||||
|
|
||||||
.PHONY: code/gen
|
|
||||||
code/gen:
|
|
||||||
operator-sdk generate k8s
|
|
||||||
|
|
||||||
.PHONY: gen/csv
|
|
||||||
gen/csv:
|
|
||||||
sed -i.bak 's/image:.*/image: quay\.io\/integreatly\/application-monitoring-operator:v$(AMO_VERSION)/g' deploy/operator.yaml && rm deploy/operator.yaml.bak
|
|
||||||
@operator-sdk generate csv --operator-name=application-monitoring-operator --csv-version $(AMO_VERSION) --from-version $(PREV_AMO_VERSION) --update-crds --csv-channel=integreatly --default-channel
|
|
||||||
@sed -i.bak 's/$(PREV_AMO_VERSION)/$(AMO_VERSION)/g' deploy/olm-catalog/application-monitoring-operator/application-monitoring-operator.package.yaml && rm deploy/olm-catalog/application-monitoring-operator/application-monitoring-operator.package.yaml.bak
|
|
||||||
@sed -i.bak s/application-monitoring-operator:v$(PREV_AMO_VERSION)/application-monitoring-operator:v$(AMO_VERSION)/g deploy/olm-catalog/application-monitoring-operator/$(AMO_VERSION)/application-monitoring-operator.v$(AMO_VERSION).clusterserviceversion.yaml && rm deploy/olm-catalog/application-monitoring-operator/$(AMO_VERSION)/application-monitoring-operator.v$(AMO_VERSION).clusterserviceversion.yaml.bak
|
|
||||||
|
|
||||||
.PHONY: code/check
|
|
||||||
code/check:
|
|
||||||
@diff -u <(echo -n) <(gofmt -d `find . -type f -name '*.go' -not -path "./vendor/*"`)
|
|
||||||
|
|
||||||
.PHONY: code/fix
|
|
||||||
code/fix:
|
|
||||||
@gofmt -w `find . -type f -name '*.go' -not -path "./vendor/*"`
|
|
||||||
|
|
||||||
.PHONY: image/build
|
|
||||||
image/build: code/compile
|
|
||||||
@operator-sdk build ${REG}/${ORG}/${PROJECT}:${AMO_VERSION}
|
|
||||||
|
|
||||||
.PHONY: image/push
|
|
||||||
image/push:
|
|
||||||
docker push ${REG}/${ORG}/${PROJECT}:${AMO_VERSION}
|
|
||||||
|
|
||||||
.PHONY: image/build/push
|
|
||||||
image/build/push: image/build image/push
|
|
||||||
|
|
||||||
.PHONY: image/build/test
|
|
||||||
image/build/test:
|
|
||||||
operator-sdk build --enable-tests ${REG}/${ORG}/${PROJECT}:${AMO_VERSION}
|
|
||||||
|
|
||||||
.PHONY: test/unit
|
|
||||||
test/unit:
|
|
||||||
@echo Running tests:
|
|
||||||
go test -v -race -cover ./pkg/...
|
|
||||||
|
|
||||||
.PHONY: test/e2e
|
|
||||||
test/e2e:
|
|
||||||
kubectl apply -f deploy/test-e2e-pod.yaml -n ${PROJECT}
|
|
||||||
${SHELL} ./scripts/stream-pod ${TEST_POD_NAME} ${PROJECT}
|
|
||||||
|
|
||||||
.PHONY: cluster/prepare
|
|
||||||
cluster/prepare:
|
|
||||||
-kubectl apply -f deploy/crds/
|
|
||||||
-oc new-project $(NAMESPACE)
|
|
||||||
|
|
||||||
.PHONY: cluster/clean
|
|
||||||
cluster/clean:
|
|
||||||
-kubectl delete -n $(NAMESPACE) --all blackboxtargets
|
|
||||||
-kubectl delete -n $(NAMESPACE) --all grafanadashboards
|
|
||||||
-kubectl delete -n $(NAMESPACE) --all grafanadatasources
|
|
||||||
-kubectl delete -n $(NAMESPACE) --all applicationmonitorings
|
|
||||||
-kubectl delete -f ./deploy/cluster-roles
|
|
||||||
-kubectl delete crd grafanas.integreatly.org
|
|
||||||
-kubectl delete crd grafanadashboards.integreatly.org
|
|
||||||
-kubectl delete crd grafanadatasources.integreatly.org
|
|
||||||
-kubectl delete crd blackboxtargets.applicationmonitoring.integreatly.org
|
|
||||||
-kubectl delete crd applicationmonitorings.applicationmonitoring.integreatly.org
|
|
||||||
-kubectl delete namespace $(NAMESPACE)
|
|
||||||
|
|
||||||
.PHONY: cluster/create/examples
|
|
||||||
cluster/create/examples:
|
|
||||||
-kubectl create -f deploy/examples/ApplicationMonitoring.yaml -n $(NAMESPACE)
|
|
||||||
|
|
||||||
.PHONY: cluster/install
|
|
||||||
cluster/install:
|
|
||||||
./scripts/install.sh ${PROMETHEUS_OPERATOR_VERSION} ${GRAFANA_OPERATOR_VERSION}
|
|
||||||
|
|
||||||
.PHONY: cluster/install/local
|
|
||||||
cluster/install/local:
|
|
||||||
./scripts/install.sh ${PROMETHEUS_OPERATOR_VERSION} ${GRAFANA_OPERATOR_VERSION} ${LOCAL}
|
|
||||||
|
|
||||||
.PHONY: manifest/push
|
|
||||||
manifest/push:
|
|
||||||
@operator-courier --verbose push deploy/olm-catalog/application-monitoring-operator/ $(ORG) $(PROJECT) $(AMO_VERSION) "$(AUTH_TOKEN)"
|
|
|
@ -1 +0,0 @@
|
||||||
These roles are meant to be created by the Integr8ly installer. They are included here for reference or when you wish to deploy the monitoring stack outside of Integr8ly.
|
|
|
@ -1,17 +0,0 @@
|
||||||
apiVersion: authorization.openshift.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: alertmanager-application-monitoring
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- authentication.k8s.io
|
|
||||||
resources:
|
|
||||||
- tokenreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- subjectaccessreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
|
@ -1,13 +0,0 @@
|
||||||
apiVersion: authorization.openshift.io/v1
|
|
||||||
groupNames: null
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: alertmanager-application-monitoring
|
|
||||||
roleRef:
|
|
||||||
name: alertmanager-application-monitoring
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: alertmanager-service-account
|
|
||||||
namespace: application-monitoring
|
|
||||||
userNames:
|
|
||||||
- system:serviceaccount:application-monitoring:alertmanager-service-account
|
|
|
@ -1,23 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: grafana-operator
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- integreatly.org
|
|
||||||
resources:
|
|
||||||
- grafanadashboards
|
|
||||||
- grafanadashboards/status
|
|
||||||
verbs: ['get', 'list', 'update', 'watch']
|
|
||||||
- apiGroups:
|
|
||||||
- authentication.k8s.io
|
|
||||||
resources:
|
|
||||||
- tokenreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- subjectaccessreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
|
@ -1,12 +0,0 @@
|
||||||
apiVersion: authorization.openshift.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: grafana-operator
|
|
||||||
roleRef:
|
|
||||||
name: grafana-operator
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: grafana-operator
|
|
||||||
namespace: application-monitoring
|
|
||||||
userNames:
|
|
||||||
- system:serviceaccount:application-monitoring:grafana-operator
|
|
|
@ -1,31 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: prometheus-application-monitoring
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- authentication.k8s.io
|
|
||||||
resources:
|
|
||||||
- tokenreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- subjectaccessreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- nodes
|
|
||||||
- services
|
|
||||||
- endpoints
|
|
||||||
- pods
|
|
||||||
verbs: ["get", "list", "watch"]
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- namespaces # Required to get through the alertmanager oauth proxy
|
|
||||||
verbs: ["get"]
|
|
||||||
- nonResourceURLs: ["/metrics"]
|
|
||||||
verbs: ["get"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: prometheus-application-monitoring
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: prometheus-application-monitoring
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: prometheus-service-account
|
|
||||||
namespace: application-monitoring
|
|
||||||
userNames:
|
|
||||||
- system:serviceaccount:application-monitoring:prometheus-service-account
|
|
|
@ -1,68 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: prometheus-application-monitoring-operator
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- monitoring.coreos.com
|
|
||||||
resources:
|
|
||||||
- alertmanagers
|
|
||||||
- prometheuses
|
|
||||||
- thanosrulers
|
|
||||||
- prometheuses/finalizers
|
|
||||||
- alertmanagers/finalizers
|
|
||||||
- thanosrulers/finalizers
|
|
||||||
- servicemonitors
|
|
||||||
- prometheusrules
|
|
||||||
- podmonitors
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- statefulsets
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- secrets
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- list
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- services
|
|
||||||
- endpoints
|
|
||||||
- services/finalizers
|
|
||||||
verbs:
|
|
||||||
- "*"
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- nodes
|
|
||||||
verbs:
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
|
@ -1,14 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: prometheus-application-monitoring-operator
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: prometheus-application-monitoring-operator
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: prometheus-operator
|
|
||||||
namespace: application-monitoring
|
|
||||||
userNames:
|
|
||||||
- system:serviceaccount:application-monitoring:prometheus-operator
|
|
|
@ -1,17 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: grafana-proxy
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- authentication.k8s.io
|
|
||||||
resources:
|
|
||||||
- tokenreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- subjectaccessreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
|
@ -1,12 +0,0 @@
|
||||||
apiVersion: authorization.openshift.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: grafana-proxy
|
|
||||||
roleRef:
|
|
||||||
name: grafana-proxy
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: grafana-serviceaccount
|
|
||||||
namespace: monitoring2
|
|
||||||
userNames:
|
|
||||||
- system:serviceaccount:application-monitoring:grafana-serviceaccount
|
|
|
@ -1,645 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: applicationmonitorings.applicationmonitoring.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: applicationmonitoring.integreatly.org
|
|
||||||
names:
|
|
||||||
kind: ApplicationMonitoring
|
|
||||||
listKind: ApplicationMonitoringList
|
|
||||||
plural: applicationmonitorings
|
|
||||||
singular: applicationmonitoring
|
|
||||||
scope: Namespaced
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: ApplicationMonitoring is the Schema for the applicationmonitorings
|
|
||||||
API
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: ApplicationMonitoringSpec defines the desired state of ApplicationMonitoring
|
|
||||||
properties:
|
|
||||||
additionalScrapeConfigSecretKey:
|
|
||||||
type: string
|
|
||||||
additionalScrapeConfigSecretName:
|
|
||||||
type: string
|
|
||||||
affinity:
|
|
||||||
description: Affinity is a group of affinity scheduling rules.
|
|
||||||
properties:
|
|
||||||
nodeAffinity:
|
|
||||||
description: Describes node affinity scheduling rules for the pod.
|
|
||||||
properties:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
description: The scheduler will prefer to schedule pods to nodes
|
|
||||||
that satisfy the affinity expressions specified by this field,
|
|
||||||
but it may choose a node that violates one or more of the
|
|
||||||
expressions. The node that is most preferred is the one with
|
|
||||||
the greatest sum of weights, i.e. for each node that meets
|
|
||||||
all of the scheduling requirements (resource request, requiredDuringScheduling
|
|
||||||
affinity expressions, etc.), compute a sum by iterating through
|
|
||||||
the elements of this field and adding "weight" to the sum
|
|
||||||
if the node matches the corresponding matchExpressions; the
|
|
||||||
node(s) with the highest sum are the most preferred.
|
|
||||||
items:
|
|
||||||
description: An empty preferred scheduling term matches all
|
|
||||||
objects with implicit weight 0 (i.e. it's a no-op). A null
|
|
||||||
preferred scheduling term matches no objects (i.e. is also
|
|
||||||
a no-op).
|
|
||||||
properties:
|
|
||||||
preference:
|
|
||||||
description: A node selector term, associated with the
|
|
||||||
corresponding weight.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: A list of node selector requirements
|
|
||||||
by node's labels.
|
|
||||||
items:
|
|
||||||
description: A node selector requirement is a selector
|
|
||||||
that contains values, a key, and an operator that
|
|
||||||
relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The label key that the selector
|
|
||||||
applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: Represents a key's relationship
|
|
||||||
to a set of values. Valid operators are In,
|
|
||||||
NotIn, Exists, DoesNotExist. Gt, and Lt.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: An array of string values. If the
|
|
||||||
operator is In or NotIn, the values array
|
|
||||||
must be non-empty. If the operator is Exists
|
|
||||||
or DoesNotExist, the values array must be
|
|
||||||
empty. If the operator is Gt or Lt, the values
|
|
||||||
array must have a single element, which will
|
|
||||||
be interpreted as an integer. This array is
|
|
||||||
replaced during a strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
matchFields:
|
|
||||||
description: A list of node selector requirements
|
|
||||||
by node's fields.
|
|
||||||
items:
|
|
||||||
description: A node selector requirement is a selector
|
|
||||||
that contains values, a key, and an operator that
|
|
||||||
relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The label key that the selector
|
|
||||||
applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: Represents a key's relationship
|
|
||||||
to a set of values. Valid operators are In,
|
|
||||||
NotIn, Exists, DoesNotExist. Gt, and Lt.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: An array of string values. If the
|
|
||||||
operator is In or NotIn, the values array
|
|
||||||
must be non-empty. If the operator is Exists
|
|
||||||
or DoesNotExist, the values array must be
|
|
||||||
empty. If the operator is Gt or Lt, the values
|
|
||||||
array must have a single element, which will
|
|
||||||
be interpreted as an integer. This array is
|
|
||||||
replaced during a strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
weight:
|
|
||||||
description: Weight associated with matching the corresponding
|
|
||||||
nodeSelectorTerm, in the range 1-100.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- preference
|
|
||||||
- weight
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
description: If the affinity requirements specified by this
|
|
||||||
field are not met at scheduling time, the pod will not be
|
|
||||||
scheduled onto the node. If the affinity requirements specified
|
|
||||||
by this field cease to be met at some point during pod execution
|
|
||||||
(e.g. due to an update), the system may or may not try to
|
|
||||||
eventually evict the pod from its node.
|
|
||||||
properties:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
description: Required. A list of node selector terms. The
|
|
||||||
terms are ORed.
|
|
||||||
items:
|
|
||||||
description: A null or empty node selector term matches
|
|
||||||
no objects. The requirements of them are ANDed. The
|
|
||||||
TopologySelectorTerm type implements a subset of the
|
|
||||||
NodeSelectorTerm.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: A list of node selector requirements
|
|
||||||
by node's labels.
|
|
||||||
items:
|
|
||||||
description: A node selector requirement is a selector
|
|
||||||
that contains values, a key, and an operator that
|
|
||||||
relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The label key that the selector
|
|
||||||
applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: Represents a key's relationship
|
|
||||||
to a set of values. Valid operators are In,
|
|
||||||
NotIn, Exists, DoesNotExist. Gt, and Lt.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: An array of string values. If the
|
|
||||||
operator is In or NotIn, the values array
|
|
||||||
must be non-empty. If the operator is Exists
|
|
||||||
or DoesNotExist, the values array must be
|
|
||||||
empty. If the operator is Gt or Lt, the values
|
|
||||||
array must have a single element, which will
|
|
||||||
be interpreted as an integer. This array is
|
|
||||||
replaced during a strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
matchFields:
|
|
||||||
description: A list of node selector requirements
|
|
||||||
by node's fields.
|
|
||||||
items:
|
|
||||||
description: A node selector requirement is a selector
|
|
||||||
that contains values, a key, and an operator that
|
|
||||||
relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The label key that the selector
|
|
||||||
applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: Represents a key's relationship
|
|
||||||
to a set of values. Valid operators are In,
|
|
||||||
NotIn, Exists, DoesNotExist. Gt, and Lt.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: An array of string values. If the
|
|
||||||
operator is In or NotIn, the values array
|
|
||||||
must be non-empty. If the operator is Exists
|
|
||||||
or DoesNotExist, the values array must be
|
|
||||||
empty. If the operator is Gt or Lt, the values
|
|
||||||
array must have a single element, which will
|
|
||||||
be interpreted as an integer. This array is
|
|
||||||
replaced during a strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- nodeSelectorTerms
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
podAffinity:
|
|
||||||
description: Describes pod affinity scheduling rules (e.g. co-locate
|
|
||||||
this pod in the same node, zone, etc. as some other pod(s)).
|
|
||||||
properties:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
description: The scheduler will prefer to schedule pods to nodes
|
|
||||||
that satisfy the affinity expressions specified by this field,
|
|
||||||
but it may choose a node that violates one or more of the
|
|
||||||
expressions. The node that is most preferred is the one with
|
|
||||||
the greatest sum of weights, i.e. for each node that meets
|
|
||||||
all of the scheduling requirements (resource request, requiredDuringScheduling
|
|
||||||
affinity expressions, etc.), compute a sum by iterating through
|
|
||||||
the elements of this field and adding "weight" to the sum
|
|
||||||
if the node has pods which matches the corresponding podAffinityTerm;
|
|
||||||
the node(s) with the highest sum are the most preferred.
|
|
||||||
items:
|
|
||||||
description: The weights of all of the matched WeightedPodAffinityTerm
|
|
||||||
fields are added per-node to find the most preferred node(s)
|
|
||||||
properties:
|
|
||||||
podAffinityTerm:
|
|
||||||
description: Required. A pod affinity term, associated
|
|
||||||
with the corresponding weight.
|
|
||||||
properties:
|
|
||||||
labelSelector:
|
|
||||||
description: A label query over a set of resources,
|
|
||||||
in this case pods.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: matchExpressions is a list of label
|
|
||||||
selector requirements. The requirements are
|
|
||||||
ANDed.
|
|
||||||
items:
|
|
||||||
description: A label selector requirement is
|
|
||||||
a selector that contains values, a key, and
|
|
||||||
an operator that relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: key is the label key that the
|
|
||||||
selector applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: operator represents a key's
|
|
||||||
relationship to a set of values. Valid
|
|
||||||
operators are In, NotIn, Exists and DoesNotExist.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: values is an array of string
|
|
||||||
values. If the operator is In or NotIn,
|
|
||||||
the values array must be non-empty. If
|
|
||||||
the operator is Exists or DoesNotExist,
|
|
||||||
the values array must be empty. This array
|
|
||||||
is replaced during a strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
matchLabels:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: matchLabels is a map of {key,value}
|
|
||||||
pairs. A single {key,value} in the matchLabels
|
|
||||||
map is equivalent to an element of matchExpressions,
|
|
||||||
whose key field is "key", the operator is "In",
|
|
||||||
and the values array contains only "value".
|
|
||||||
The requirements are ANDed.
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
namespaces:
|
|
||||||
description: namespaces specifies which namespaces
|
|
||||||
the labelSelector applies to (matches against);
|
|
||||||
null or empty list means "this pod's namespace"
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
topologyKey:
|
|
||||||
description: This pod should be co-located (affinity)
|
|
||||||
or not co-located (anti-affinity) with the pods
|
|
||||||
matching the labelSelector in the specified namespaces,
|
|
||||||
where co-located is defined as running on a node
|
|
||||||
whose value of the label with key topologyKey matches
|
|
||||||
that of any node on which any of the selected pods
|
|
||||||
is running. Empty topologyKey is not allowed.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- topologyKey
|
|
||||||
type: object
|
|
||||||
weight:
|
|
||||||
description: weight associated with matching the corresponding
|
|
||||||
podAffinityTerm, in the range 1-100.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- podAffinityTerm
|
|
||||||
- weight
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
description: If the affinity requirements specified by this
|
|
||||||
field are not met at scheduling time, the pod will not be
|
|
||||||
scheduled onto the node. If the affinity requirements specified
|
|
||||||
by this field cease to be met at some point during pod execution
|
|
||||||
(e.g. due to a pod label update), the system may or may not
|
|
||||||
try to eventually evict the pod from its node. When there
|
|
||||||
are multiple elements, the lists of nodes corresponding to
|
|
||||||
each podAffinityTerm are intersected, i.e. all terms must
|
|
||||||
be satisfied.
|
|
||||||
items:
|
|
||||||
description: Defines a set of pods (namely those matching
|
|
||||||
the labelSelector relative to the given namespace(s)) that
|
|
||||||
this pod should be co-located (affinity) or not co-located
|
|
||||||
(anti-affinity) with, where co-located is defined as running
|
|
||||||
on a node whose value of the label with key <topologyKey>
|
|
||||||
matches that of any node on which a pod of the set of pods
|
|
||||||
is running
|
|
||||||
properties:
|
|
||||||
labelSelector:
|
|
||||||
description: A label query over a set of resources, in
|
|
||||||
this case pods.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: matchExpressions is a list of label selector
|
|
||||||
requirements. The requirements are ANDed.
|
|
||||||
items:
|
|
||||||
description: A label selector requirement is a selector
|
|
||||||
that contains values, a key, and an operator that
|
|
||||||
relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: key is the label key that the selector
|
|
||||||
applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: operator represents a key's relationship
|
|
||||||
to a set of values. Valid operators are In,
|
|
||||||
NotIn, Exists and DoesNotExist.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: values is an array of string values.
|
|
||||||
If the operator is In or NotIn, the values
|
|
||||||
array must be non-empty. If the operator is
|
|
||||||
Exists or DoesNotExist, the values array must
|
|
||||||
be empty. This array is replaced during a
|
|
||||||
strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
matchLabels:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: matchLabels is a map of {key,value} pairs.
|
|
||||||
A single {key,value} in the matchLabels map is equivalent
|
|
||||||
to an element of matchExpressions, whose key field
|
|
||||||
is "key", the operator is "In", and the values array
|
|
||||||
contains only "value". The requirements are ANDed.
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
namespaces:
|
|
||||||
description: namespaces specifies which namespaces the
|
|
||||||
labelSelector applies to (matches against); null or
|
|
||||||
empty list means "this pod's namespace"
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
topologyKey:
|
|
||||||
description: This pod should be co-located (affinity)
|
|
||||||
or not co-located (anti-affinity) with the pods matching
|
|
||||||
the labelSelector in the specified namespaces, where
|
|
||||||
co-located is defined as running on a node whose value
|
|
||||||
of the label with key topologyKey matches that of any
|
|
||||||
node on which any of the selected pods is running. Empty
|
|
||||||
topologyKey is not allowed.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- topologyKey
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
podAntiAffinity:
|
|
||||||
description: Describes pod anti-affinity scheduling rules (e.g.
|
|
||||||
avoid putting this pod in the same node, zone, etc. as some other
|
|
||||||
pod(s)).
|
|
||||||
properties:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
description: The scheduler will prefer to schedule pods to nodes
|
|
||||||
that satisfy the anti-affinity expressions specified by this
|
|
||||||
field, but it may choose a node that violates one or more
|
|
||||||
of the expressions. The node that is most preferred is the
|
|
||||||
one with the greatest sum of weights, i.e. for each node that
|
|
||||||
meets all of the scheduling requirements (resource request,
|
|
||||||
requiredDuringScheduling anti-affinity expressions, etc.),
|
|
||||||
compute a sum by iterating through the elements of this field
|
|
||||||
and adding "weight" to the sum if the node has pods which
|
|
||||||
matches the corresponding podAffinityTerm; the node(s) with
|
|
||||||
the highest sum are the most preferred.
|
|
||||||
items:
|
|
||||||
description: The weights of all of the matched WeightedPodAffinityTerm
|
|
||||||
fields are added per-node to find the most preferred node(s)
|
|
||||||
properties:
|
|
||||||
podAffinityTerm:
|
|
||||||
description: Required. A pod affinity term, associated
|
|
||||||
with the corresponding weight.
|
|
||||||
properties:
|
|
||||||
labelSelector:
|
|
||||||
description: A label query over a set of resources,
|
|
||||||
in this case pods.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: matchExpressions is a list of label
|
|
||||||
selector requirements. The requirements are
|
|
||||||
ANDed.
|
|
||||||
items:
|
|
||||||
description: A label selector requirement is
|
|
||||||
a selector that contains values, a key, and
|
|
||||||
an operator that relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: key is the label key that the
|
|
||||||
selector applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: operator represents a key's
|
|
||||||
relationship to a set of values. Valid
|
|
||||||
operators are In, NotIn, Exists and DoesNotExist.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: values is an array of string
|
|
||||||
values. If the operator is In or NotIn,
|
|
||||||
the values array must be non-empty. If
|
|
||||||
the operator is Exists or DoesNotExist,
|
|
||||||
the values array must be empty. This array
|
|
||||||
is replaced during a strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
matchLabels:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: matchLabels is a map of {key,value}
|
|
||||||
pairs. A single {key,value} in the matchLabels
|
|
||||||
map is equivalent to an element of matchExpressions,
|
|
||||||
whose key field is "key", the operator is "In",
|
|
||||||
and the values array contains only "value".
|
|
||||||
The requirements are ANDed.
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
namespaces:
|
|
||||||
description: namespaces specifies which namespaces
|
|
||||||
the labelSelector applies to (matches against);
|
|
||||||
null or empty list means "this pod's namespace"
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
topologyKey:
|
|
||||||
description: This pod should be co-located (affinity)
|
|
||||||
or not co-located (anti-affinity) with the pods
|
|
||||||
matching the labelSelector in the specified namespaces,
|
|
||||||
where co-located is defined as running on a node
|
|
||||||
whose value of the label with key topologyKey matches
|
|
||||||
that of any node on which any of the selected pods
|
|
||||||
is running. Empty topologyKey is not allowed.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- topologyKey
|
|
||||||
type: object
|
|
||||||
weight:
|
|
||||||
description: weight associated with matching the corresponding
|
|
||||||
podAffinityTerm, in the range 1-100.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- podAffinityTerm
|
|
||||||
- weight
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
description: If the anti-affinity requirements specified by
|
|
||||||
this field are not met at scheduling time, the pod will not
|
|
||||||
be scheduled onto the node. If the anti-affinity requirements
|
|
||||||
specified by this field cease to be met at some point during
|
|
||||||
pod execution (e.g. due to a pod label update), the system
|
|
||||||
may or may not try to eventually evict the pod from its node.
|
|
||||||
When there are multiple elements, the lists of nodes corresponding
|
|
||||||
to each podAffinityTerm are intersected, i.e. all terms must
|
|
||||||
be satisfied.
|
|
||||||
items:
|
|
||||||
description: Defines a set of pods (namely those matching
|
|
||||||
the labelSelector relative to the given namespace(s)) that
|
|
||||||
this pod should be co-located (affinity) or not co-located
|
|
||||||
(anti-affinity) with, where co-located is defined as running
|
|
||||||
on a node whose value of the label with key <topologyKey>
|
|
||||||
matches that of any node on which a pod of the set of pods
|
|
||||||
is running
|
|
||||||
properties:
|
|
||||||
labelSelector:
|
|
||||||
description: A label query over a set of resources, in
|
|
||||||
this case pods.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: matchExpressions is a list of label selector
|
|
||||||
requirements. The requirements are ANDed.
|
|
||||||
items:
|
|
||||||
description: A label selector requirement is a selector
|
|
||||||
that contains values, a key, and an operator that
|
|
||||||
relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: key is the label key that the selector
|
|
||||||
applies to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: operator represents a key's relationship
|
|
||||||
to a set of values. Valid operators are In,
|
|
||||||
NotIn, Exists and DoesNotExist.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: values is an array of string values.
|
|
||||||
If the operator is In or NotIn, the values
|
|
||||||
array must be non-empty. If the operator is
|
|
||||||
Exists or DoesNotExist, the values array must
|
|
||||||
be empty. This array is replaced during a
|
|
||||||
strategic merge patch.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- operator
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
matchLabels:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: matchLabels is a map of {key,value} pairs.
|
|
||||||
A single {key,value} in the matchLabels map is equivalent
|
|
||||||
to an element of matchExpressions, whose key field
|
|
||||||
is "key", the operator is "In", and the values array
|
|
||||||
contains only "value". The requirements are ANDed.
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
namespaces:
|
|
||||||
description: namespaces specifies which namespaces the
|
|
||||||
labelSelector applies to (matches against); null or
|
|
||||||
empty list means "this pod's namespace"
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
topologyKey:
|
|
||||||
description: This pod should be co-located (affinity)
|
|
||||||
or not co-located (anti-affinity) with the pods matching
|
|
||||||
the labelSelector in the specified namespaces, where
|
|
||||||
co-located is defined as running on a node whose value
|
|
||||||
of the label with key topologyKey matches that of any
|
|
||||||
node on which any of the selected pods is running. Empty
|
|
||||||
topologyKey is not allowed.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- topologyKey
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
alertmanagerInstanceNamespaces:
|
|
||||||
type: string
|
|
||||||
description: The key under which additional scrape configs are stored within the secret
|
|
||||||
priorityClassName:
|
|
||||||
type: string
|
|
||||||
description: Priority Class Name
|
|
||||||
labelSelector:
|
|
||||||
minLength: 1
|
|
||||||
type: string
|
|
||||||
prometheusInstanceNamespaces:
|
|
||||||
type: string
|
|
||||||
prometheusRetention:
|
|
||||||
type: string
|
|
||||||
prometheusStorageRequest:
|
|
||||||
type: string
|
|
||||||
selfSignedCerts:
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- labelSelector
|
|
||||||
type: object
|
|
||||||
status:
|
|
||||||
description: ApplicationMonitoringStatus defines the observed state of ApplicationMonitoring
|
|
||||||
properties:
|
|
||||||
lastblackboxconfig:
|
|
||||||
type: string
|
|
||||||
phase:
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- lastblackboxconfig
|
|
||||||
- phase
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
version: v1alpha1
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
|
@ -1,71 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: blackboxtargets.applicationmonitoring.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: applicationmonitoring.integreatly.org
|
|
||||||
names:
|
|
||||||
kind: BlackboxTarget
|
|
||||||
listKind: BlackboxTargetList
|
|
||||||
plural: blackboxtargets
|
|
||||||
singular: blackboxtarget
|
|
||||||
scope: Namespaced
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: BlackboxTarget is the Schema for the blackboxtargets API
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: BlackboxTargetSpec defines the desired state of BlackboxTarget
|
|
||||||
properties:
|
|
||||||
blackboxTargets:
|
|
||||||
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
|
|
||||||
Important: Run "operator-sdk generate k8s" to regenerate code after
|
|
||||||
modifying this file Add custom validation using kubebuilder tags:
|
|
||||||
https://book.kubebuilder.io/beyond_basics/generating_crd.html'
|
|
||||||
items:
|
|
||||||
description: 'BlackboxtargetStructure contains: A target (url, module
|
|
||||||
and service name) to be probed by the'
|
|
||||||
properties:
|
|
||||||
module:
|
|
||||||
type: string
|
|
||||||
service:
|
|
||||||
type: string
|
|
||||||
url:
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- module
|
|
||||||
- service
|
|
||||||
- url
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
status:
|
|
||||||
description: BlackboxTargetStatus defines the observed state of BlackboxTarget
|
|
||||||
properties:
|
|
||||||
phase:
|
|
||||||
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
|
|
||||||
of cluster Important: Run "operator-sdk generate k8s" to regenerate
|
|
||||||
code after modifying this file Add custom validation using kubebuilder
|
|
||||||
tags: https://book.kubebuilder.io/beyond_basics/generating_crd.html'
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- phase
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
version: v1alpha1
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
|
@ -1,149 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: grafanas.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: integreatly.org
|
|
||||||
names:
|
|
||||||
kind: Grafana
|
|
||||||
listKind: GrafanaList
|
|
||||||
plural: grafanas
|
|
||||||
singular: grafana
|
|
||||||
scope: Namespaced
|
|
||||||
subresources:
|
|
||||||
status: {}
|
|
||||||
version: v1alpha1
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
required: ["spec"]
|
|
||||||
properties:
|
|
||||||
spec:
|
|
||||||
properties:
|
|
||||||
containers:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
description: Additional container to add to the grafana pod
|
|
||||||
secrets:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: Secret to be mounted as volume into the grafana deployment
|
|
||||||
configMaps:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: Config map to be mounted as volume into the grafana deployment
|
|
||||||
logLevel:
|
|
||||||
type: string
|
|
||||||
description: Log level of the grafana instance, defaults to info
|
|
||||||
adminUser:
|
|
||||||
type: string
|
|
||||||
description: Default admin user name
|
|
||||||
adminPassword:
|
|
||||||
type: string
|
|
||||||
description: Default admin password
|
|
||||||
basicAuth:
|
|
||||||
type: boolean
|
|
||||||
description: Basic auth enabled
|
|
||||||
disableLoginForm:
|
|
||||||
type: boolean
|
|
||||||
description: Disable login form
|
|
||||||
disableSignoutMenu:
|
|
||||||
type: boolean
|
|
||||||
description: Disable signout menu
|
|
||||||
anonymous:
|
|
||||||
type: boolean
|
|
||||||
description: Anonymous auth enabled
|
|
||||||
config:
|
|
||||||
type: object
|
|
||||||
description: Grafana config
|
|
||||||
ingress:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
enabled:
|
|
||||||
type: boolean
|
|
||||||
description: Create an ingress / route
|
|
||||||
path:
|
|
||||||
type: string
|
|
||||||
description: Ingress path
|
|
||||||
hostname:
|
|
||||||
type: string
|
|
||||||
description: The hostname of the ingress / route
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the ingress / route
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the ingress / route
|
|
||||||
targetPort:
|
|
||||||
type: string
|
|
||||||
description: Override port to target in the grafana service
|
|
||||||
service:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
ports:
|
|
||||||
type: array
|
|
||||||
description: Override default ports
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
description: A port to add to the grafana service
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the service
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the service
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
description: Service type (NodePort, ClusterIP or LoadBalancer)
|
|
||||||
deployment:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the service
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the service
|
|
||||||
nodeSelector:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the running grafana pods in a labeled node.
|
|
||||||
tolerations:
|
|
||||||
type: array
|
|
||||||
description: Additonal labels for running grafana pods in tained nodes.
|
|
||||||
affinity:
|
|
||||||
type: object
|
|
||||||
description: Additonal labels for running grafana pods with affinity properties.
|
|
||||||
envFrom:
|
|
||||||
type: array
|
|
||||||
description: Environment variables from Secret or ConfigMap.
|
|
||||||
skipCreateAdminAccount:
|
|
||||||
type: boolean
|
|
||||||
description: Disable creating a random admin user
|
|
||||||
priorityClassName:
|
|
||||||
type: string
|
|
||||||
description: Pod priority class name
|
|
||||||
serviceAccount:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the serviceaccount
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the serviceaccount
|
|
||||||
client:
|
|
||||||
type: object
|
|
||||||
description: Grafana client settings
|
|
||||||
compat:
|
|
||||||
type: object
|
|
||||||
description: Backwards compatibility switches
|
|
||||||
dashboardLabelSelectors:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
description: Label selector or match expressions
|
|
||||||
jsonnet:
|
|
||||||
type: object
|
|
||||||
description: Jsonnet library configuration
|
|
|
@ -1,43 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: grafanadashboards.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: integreatly.org
|
|
||||||
names:
|
|
||||||
kind: GrafanaDashboard
|
|
||||||
listKind: GrafanaDashboardList
|
|
||||||
plural: grafanadashboards
|
|
||||||
singular: grafanadashboard
|
|
||||||
scope: Namespaced
|
|
||||||
subresources:
|
|
||||||
status: {}
|
|
||||||
version: v1alpha1
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
properties:
|
|
||||||
spec:
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
json:
|
|
||||||
type: string
|
|
||||||
jsonnet:
|
|
||||||
description: Jsonnet source. Has access to grafonnet.
|
|
||||||
type: string
|
|
||||||
url:
|
|
||||||
type: string
|
|
||||||
description: URL to dashboard json
|
|
||||||
datasources:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
description: Input datasources to resolve before importing
|
|
||||||
type: object
|
|
||||||
plugins:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
description: Grafana Plugin Object
|
|
||||||
type: object
|
|
||||||
customFolderName:
|
|
||||||
description: Folder name that this dashboard will be assigned to.
|
|
||||||
type: string
|
|
|
@ -1,35 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: grafanadatasources.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: integreatly.org
|
|
||||||
names:
|
|
||||||
kind: GrafanaDataSource
|
|
||||||
listKind: GrafanaDataSourceList
|
|
||||||
plural: grafanadatasources
|
|
||||||
singular: grafanadatasource
|
|
||||||
scope: Namespaced
|
|
||||||
subresources:
|
|
||||||
status: {}
|
|
||||||
version: v1alpha1
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
required: ["datasources", "name"]
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
minimum: 1
|
|
||||||
datasources:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
description: Grafana Datasource Object
|
|
||||||
type: object
|
|
|
@ -1,14 +0,0 @@
|
||||||
apiVersion: applicationmonitoring.integreatly.org/v1alpha1
|
|
||||||
kind: ApplicationMonitoring
|
|
||||||
metadata:
|
|
||||||
name: middleware-applicationmonitoring
|
|
||||||
spec:
|
|
||||||
labelSelector: "middleware"
|
|
||||||
additionalScrapeConfigSecretName: "integreatly-additional-scrape-configs"
|
|
||||||
additionalScrapeConfigSecretKey: "integreatly-additional.yaml"
|
|
||||||
prometheusRetention: 15d
|
|
||||||
prometheusInstanceNamespaces: application-monitoring
|
|
||||||
alertmanagerInstanceNamespaces: application-monitoring
|
|
||||||
selfSignedCerts: true
|
|
||||||
priorityClassName: ""
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
apiVersion: applicationmonitoring.integreatly.org/v1alpha1
|
|
||||||
kind: BlackboxTarget
|
|
||||||
metadata:
|
|
||||||
name: example-blackboxtarget
|
|
||||||
spec:
|
|
||||||
blackboxTargets:
|
|
||||||
- service: example
|
|
||||||
url: https://example.com
|
|
||||||
module: http_extern_2xx
|
|
||||||
- service: example2
|
|
||||||
url: https://google.com
|
|
||||||
module: http_extern_2xx
|
|
|
@ -1,37 +0,0 @@
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: application-monitoring-operator
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
name: application-monitoring-operator
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
name: application-monitoring-operator
|
|
||||||
spec:
|
|
||||||
serviceAccountName: application-monitoring-operator
|
|
||||||
containers:
|
|
||||||
- name: application-monitoring-operator
|
|
||||||
image: quay.io/integreatly/application-monitoring-operator:v1.5.0
|
|
||||||
ports:
|
|
||||||
- containerPort: 8383
|
|
||||||
name: metrics
|
|
||||||
command:
|
|
||||||
- application-monitoring-operator
|
|
||||||
imagePullPolicy: Always
|
|
||||||
env:
|
|
||||||
- name: TEMPLATE_PATH
|
|
||||||
value: /usr/local/bin/templates
|
|
||||||
- name: WATCH_NAMESPACE
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: metadata.namespace
|
|
||||||
- name: POD_NAME
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: metadata.name
|
|
||||||
- name: OPERATOR_NAME
|
|
||||||
value: "application-monitoring-operator"
|
|
|
@ -1,94 +0,0 @@
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: Role
|
|
||||||
metadata:
|
|
||||||
creationTimestamp: null
|
|
||||||
name: application-monitoring-operator
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
- services
|
|
||||||
- services/finalizers
|
|
||||||
- endpoints
|
|
||||||
- persistentvolumeclaims
|
|
||||||
- events
|
|
||||||
- configmaps
|
|
||||||
- secrets
|
|
||||||
- serviceaccounts
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- deployments
|
|
||||||
- deployments/finalizers
|
|
||||||
- daemonsets
|
|
||||||
- replicasets
|
|
||||||
- statefulsets
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- monitoring.coreos.com
|
|
||||||
resources:
|
|
||||||
- alertmanagers
|
|
||||||
- prometheuses
|
|
||||||
- prometheusrules
|
|
||||||
- servicemonitors
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- applicationmonitoring.integreatly.org
|
|
||||||
resources:
|
|
||||||
- applicationmonitorings
|
|
||||||
- applicationmonitorings/finalizers
|
|
||||||
- blackboxtargets
|
|
||||||
- blackboxtargets/finalizers
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- integreatly.org
|
|
||||||
resources:
|
|
||||||
- grafanadatasources
|
|
||||||
- grafanadatasources/status
|
|
||||||
- grafanadashboards
|
|
||||||
- grafanadashboards/status
|
|
||||||
- grafanas
|
|
||||||
- grafanas/status
|
|
||||||
- grafanas/finalizers
|
|
||||||
- grafanadatasources/finalizers
|
|
||||||
- grafanadashboards/finalizers
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- route.openshift.io
|
|
||||||
resources:
|
|
||||||
- routes
|
|
||||||
- routes/custom-host
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
- roles
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- extensions
|
|
||||||
resources:
|
|
||||||
- ingresses
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- authentication.k8s.io
|
|
||||||
resources:
|
|
||||||
- tokenreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- subjectaccessreviews
|
|
||||||
verbs:
|
|
||||||
- create
|
|
|
@ -1,11 +0,0 @@
|
||||||
kind: RoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: application-monitoring-operator
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: application-monitoring-operator
|
|
||||||
roleRef:
|
|
||||||
kind: Role
|
|
||||||
name: application-monitoring-operator
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
|
@ -1,4 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: application-monitoring-operator
|
|
|
@ -1,5 +0,0 @@
|
||||||
package version
|
|
||||||
|
|
||||||
var (
|
|
||||||
Version = "1.5.0"
|
|
||||||
)
|
|
|
@ -1,201 +0,0 @@
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
|
@ -1,227 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: grafanas.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: integreatly.org
|
|
||||||
names:
|
|
||||||
kind: Grafana
|
|
||||||
listKind: GrafanaList
|
|
||||||
plural: grafanas
|
|
||||||
singular: grafana
|
|
||||||
scope: Namespaced
|
|
||||||
subresources:
|
|
||||||
status: { }
|
|
||||||
version: v1alpha1
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
required: [ "spec" ]
|
|
||||||
properties:
|
|
||||||
spec:
|
|
||||||
properties:
|
|
||||||
containers:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
description: Additional container to add to the grafana pod
|
|
||||||
secrets:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: Secret to be mounted as volume into the grafana deployment
|
|
||||||
configMaps:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: Config map to be mounted as volume into the grafana deployment
|
|
||||||
logLevel:
|
|
||||||
type: string
|
|
||||||
description: Log level of the grafana instance, defaults to info
|
|
||||||
adminUser:
|
|
||||||
type: string
|
|
||||||
description: Default admin user name
|
|
||||||
adminPassword:
|
|
||||||
type: string
|
|
||||||
description: Default admin password
|
|
||||||
basicAuth:
|
|
||||||
type: boolean
|
|
||||||
description: Basic auth enabled
|
|
||||||
disableLoginForm:
|
|
||||||
type: boolean
|
|
||||||
description: Disable login form
|
|
||||||
disableSignoutMenu:
|
|
||||||
type: boolean
|
|
||||||
description: Disable signout menu
|
|
||||||
anonymous:
|
|
||||||
type: boolean
|
|
||||||
description: Anonymous auth enabled
|
|
||||||
config:
|
|
||||||
type: object
|
|
||||||
description: Grafana config
|
|
||||||
ingress:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
enabled:
|
|
||||||
type: boolean
|
|
||||||
description: Create an ingress / route
|
|
||||||
path:
|
|
||||||
type: string
|
|
||||||
description: Ingress path
|
|
||||||
hostname:
|
|
||||||
type: string
|
|
||||||
description: The hostname of the ingress / route
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the ingress / route
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the ingress / route
|
|
||||||
targetPort:
|
|
||||||
type: string
|
|
||||||
description: Override port to target in the grafana service
|
|
||||||
service:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
description: Override default service name
|
|
||||||
ports:
|
|
||||||
type: array
|
|
||||||
description: Override default ports
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
description: A port to add to the grafana service
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the service
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the service
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
description: Service type (NodePort, ClusterIP or LoadBalancer)
|
|
||||||
deployment:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the service
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the service
|
|
||||||
nodeSelector:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the running grafana pods in a labeled node.
|
|
||||||
tolerations:
|
|
||||||
type: array
|
|
||||||
description: Additonal labels for running grafana pods in tained nodes.
|
|
||||||
affinity:
|
|
||||||
type: object
|
|
||||||
description: Additonal labels for running grafana pods with affinity properties.
|
|
||||||
envFrom:
|
|
||||||
type: array
|
|
||||||
description: Environment variables from Secret or ConfigMap.
|
|
||||||
skipCreateAdminAccount:
|
|
||||||
type: boolean
|
|
||||||
description: Disable creating a random admin user
|
|
||||||
priorityClassName:
|
|
||||||
type: string
|
|
||||||
description: Pod priority class name
|
|
||||||
serviceAccount:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
annotations:
|
|
||||||
type: object
|
|
||||||
description: Additional annotations for the serviceaccount
|
|
||||||
labels:
|
|
||||||
type: object
|
|
||||||
description: Additional labels for the serviceaccount
|
|
||||||
client:
|
|
||||||
type: object
|
|
||||||
description: Grafana client settings
|
|
||||||
compat:
|
|
||||||
type: object
|
|
||||||
description: Backwards compatibility switches
|
|
||||||
dashboardLabelSelectors:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
description: Label selector or match expressions
|
|
||||||
jsonnet:
|
|
||||||
type: object
|
|
||||||
description: Jsonnet library configuration
|
|
||||||
livenessProbeSpec:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
initialDelaySeconds:
|
|
||||||
description: >-
|
|
||||||
Number of seconds after the container has
|
|
||||||
started before liveness probes are initiated. More info:
|
|
||||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
timeoutSeconds:
|
|
||||||
description: Number of seconds after which the probe times out. Defaults to 1 second.
|
|
||||||
Minimum value is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
periodSeconds:
|
|
||||||
description: >-
|
|
||||||
How often (in seconds) to perform the probe.
|
|
||||||
Default to 10 seconds. Minimum value is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
successThreshold:
|
|
||||||
description: >-
|
|
||||||
Minimum consecutive successes for the probe
|
|
||||||
to be considered successful after having failed. Defaults
|
|
||||||
to 1. Must be 1 for liveness and startup. Minimum value
|
|
||||||
is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
failureThreshold:
|
|
||||||
description: >-
|
|
||||||
When a probe fails, Kubernetes will try failureThreshold times before giving up.
|
|
||||||
Giving up in case of liveness probe means restarting the container.
|
|
||||||
In case of readiness probe the Pod will be marked Unready.
|
|
||||||
Defaults to 3. Minimum value is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
readinessProbeSpec:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
initialDelaySeconds:
|
|
||||||
description: >-
|
|
||||||
Number of seconds after the container has
|
|
||||||
started before liveness probes are initiated. More info
|
|
||||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
timeoutSeconds:
|
|
||||||
description: >-
|
|
||||||
Number of seconds after which the probe times out. Defaults to 1 second.
|
|
||||||
Minimum value is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
periodSeconds:
|
|
||||||
description: >-
|
|
||||||
How often (in seconds) to perform the probe.
|
|
||||||
Default to 10 seconds. Minimum value is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
successThreshold:
|
|
||||||
description: >-
|
|
||||||
Minimum consecutive successes for the probe
|
|
||||||
to be considered successful after having failed. Defaults
|
|
||||||
to 1. Must be 1 for liveness and startup. Minimum value
|
|
||||||
is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
||||||
failureThreshold:
|
|
||||||
description: >-
|
|
||||||
When a probe fails, Kubernetes will try failureThreshold times before giving up.
|
|
||||||
Giving up in case of liveness probe means restarting the container.
|
|
||||||
In case of readiness probe the Pod will be marked Unready.
|
|
||||||
Defaults to 3. Minimum value is 1.
|
|
||||||
format: int32
|
|
||||||
type: integer
|
|
|
@ -1,44 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: grafanadashboards.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: integreatly.org
|
|
||||||
names:
|
|
||||||
kind: GrafanaDashboard
|
|
||||||
listKind: GrafanaDashboardList
|
|
||||||
plural: grafanadashboards
|
|
||||||
singular: grafanadashboard
|
|
||||||
scope: Namespaced
|
|
||||||
subresources:
|
|
||||||
status: {}
|
|
||||||
version: v1alpha1
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
properties:
|
|
||||||
spec:
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
json:
|
|
||||||
type: string
|
|
||||||
jsonnet:
|
|
||||||
description: Jsonnet source. Has access to grafonnet.
|
|
||||||
type: string
|
|
||||||
url:
|
|
||||||
type: string
|
|
||||||
description: URL to dashboard json
|
|
||||||
datasources:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
description: Input datasources to resolve before importing
|
|
||||||
type: object
|
|
||||||
plugins:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
description: Grafana Plugin Object
|
|
||||||
type: object
|
|
||||||
customFolderName:
|
|
||||||
description: Folder name that this dashboard will be assigned to.
|
|
||||||
type: string
|
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: grafanadatasources.integreatly.org
|
|
||||||
spec:
|
|
||||||
group: integreatly.org
|
|
||||||
names:
|
|
||||||
kind: GrafanaDataSource
|
|
||||||
listKind: GrafanaDataSourceList
|
|
||||||
plural: grafanadatasources
|
|
||||||
singular: grafanadatasource
|
|
||||||
scope: Namespaced
|
|
||||||
subresources:
|
|
||||||
status: {}
|
|
||||||
version: v1alpha1
|
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
required: ["datasources", "name"]
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
minimum: 1
|
|
||||||
datasources:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
description: Grafana Datasource Object
|
|
||||||
type: object
|
|
|
@ -1,5 +0,0 @@
|
||||||
package version
|
|
||||||
|
|
||||||
var (
|
|
||||||
Version = "3.8.1"
|
|
||||||
)
|
|
Loading…
Add table
Add a link
Reference in a new issue