diff --git a/Makefile b/Makefile index 4e9eb1ab..08559d83 100644 --- a/Makefile +++ b/Makefile @@ -13,9 +13,9 @@ COMPILE_TARGET=./tmp/_output/bin/$(PROJECT) # You can delete this comment afterwards. PROMETHEUS_OPERATOR_VERSION=v0.40.0 LOCAL=local -GRAFANA_OPERATOR_VERSION=v3.10.2 -AMO_VERSION=1.7.0 -PREV_AMO_VERSION=1.6.3 +GRAFANA_OPERATOR_VERSION=v3.10.3 +AMO_VERSION=1.8.0 +PREV_AMO_VERSION=1.7.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') @@ -34,7 +34,7 @@ setup/travis: .PHONY: code/run code/run: - @operator-sdk run --local --namespace=${NAMESPACE} + LOCAL_INSTALL="True" operator-sdk run --local --namespace=${NAMESPACE} .PHONY: code/compile code/compile: @@ -61,11 +61,11 @@ code/fix: .PHONY: image/build image/build: code/compile - @operator-sdk build ${REG}/${ORG}/${PROJECT}:${AMO_VERSION} + @operator-sdk build ${REG}/${ORG}/${PROJECT}:v${AMO_VERSION} .PHONY: image/push image/push: - docker push ${REG}/${ORG}/${PROJECT}:${AMO_VERSION} + docker push ${REG}/${ORG}/${PROJECT}:v${AMO_VERSION} .PHONY: image/build/push image/build/push: image/build image/push diff --git a/deploy/cluster-roles/prometheus-operator-clusterrole.yaml b/deploy/cluster-roles/prometheus-operator-clusterrole.yaml index 705668c2..dd3fdb29 100644 --- a/deploy/cluster-roles/prometheus-operator-clusterrole.yaml +++ b/deploy/cluster-roles/prometheus-operator-clusterrole.yaml @@ -17,10 +17,12 @@ rules: - thanosrulers - prometheuses/finalizers - alertmanagers/finalizers + - alertmanagerconfigs - thanosrulers/finalizers - servicemonitors - prometheusrules - podmonitors + - probes verbs: - '*' - apiGroups: @@ -65,4 +67,26 @@ rules: verbs: - get - list - - watch \ No newline at end of file + - watch +- apiGroups: + - applicationmonitoring.integreatly.org + resources: + - applicationmonitorings + verbs: + - get + - list + - update + - watch +- apiGroups: + - integreatly.org + resources: + - grafanas + - grafanas/finalizers + - grafanadashboards + - grafanadashboards/status + - grafanadashboards/finalizers + - grafanadatasources + - grafanadatasources/finalizers + verbs: + - get + - list \ No newline at end of file diff --git a/deploy/olm-catalog/application-monitoring-operator/1.8.0/application-monitoring-operator.v1.8.0.clusterserviceversion.yaml b/deploy/olm-catalog/application-monitoring-operator/1.8.0/application-monitoring-operator.v1.8.0.clusterserviceversion.yaml new file mode 100644 index 00000000..b39466fc --- /dev/null +++ b/deploy/olm-catalog/application-monitoring-operator/1.8.0/application-monitoring-operator.v1.8.0.clusterserviceversion.yaml @@ -0,0 +1,336 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: '[]' + capabilities: Basic Install + categories: Monitoring stack + certified: "false" + containerImage: quay.io/integreatly/application-monitoring-operator:v1.8.0 + createdAt: "2019-09-26 10:51:00" + description: Operator managed and installs Prometheus, Alertmanager, Grafana + support: Red Hat, Inc. + name: application-monitoring-operator.v1.8.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: ApplicationMonitoring is the Schema for the applicationmonitorings + API + kind: ApplicationMonitoring + name: applicationmonitorings.applicationmonitoring.integreatly.org + version: v1alpha1 + - description: BlackboxTarget is the Schema for the blackboxtargets API + kind: BlackboxTarget + name: blackboxtargets.applicationmonitoring.integreatly.org + version: v1alpha1 + description: Placeholder description + displayName: Application Monitoring Operator + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: alertmanager-service-account + - rules: + - apiGroups: + - integreatly.org + resources: + - grafanadashboards + verbs: + - get + - list + - update + - watch + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: grafana-operator + - rules: + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: grafana-serviceaccount + - 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 + verbs: + - get + - nonResourceURLs: + - /metrics + verbs: + - get + serviceAccountName: prometheus-service-account + - rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - alertmanagers + - prometheuses + - prometheuses/finalizers + - alertmanagers/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 + serviceAccountName: prometheus-operator + deployments: + - name: application-monitoring-operator + spec: + replicas: 1 + selector: + matchLabels: + name: application-monitoring-operator + strategy: {} + template: + metadata: + labels: + name: application-monitoring-operator + spec: + containers: + - command: + - application-monitoring-operator + env: + - name: TEMPLATE_PATH + value: /usr/local/bin/templates + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: application-monitoring-operator + image: quay.io/integreatly/application-monitoring-operator:v1.8.0 + imagePullPolicy: Always + name: application-monitoring-operator + ports: + - containerPort: 8383 + name: metrics + resources: {} + serviceAccountName: application-monitoring-operator + permissions: + - 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 + serviceAccountName: application-monitoring-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - Prometheus + - Grafana + - Monitoring + - AlertManager + maintainers: + - email: placeholder@email.com + name: Integreatly + maturity: alpha + provider: + name: Red Hat + replaces: application-monitoring-operator.v1.7.0 + version: 1.8.0 diff --git a/deploy/olm-catalog/application-monitoring-operator/1.8.0/applicationmonitoring.integreatly.org_applicationmonitorings_crd.yaml b/deploy/olm-catalog/application-monitoring-operator/1.8.0/applicationmonitoring.integreatly.org_applicationmonitorings_crd.yaml new file mode 100644 index 00000000..d8b9f568 --- /dev/null +++ b/deploy/olm-catalog/application-monitoring-operator/1.8.0/applicationmonitoring.integreatly.org_applicationmonitorings_crd.yaml @@ -0,0 +1,645 @@ +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 + 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 + 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 diff --git a/deploy/olm-catalog/application-monitoring-operator/1.8.0/applicationmonitoring.integreatly.org_blackboxtargets_crd.yaml b/deploy/olm-catalog/application-monitoring-operator/1.8.0/applicationmonitoring.integreatly.org_blackboxtargets_crd.yaml new file mode 100644 index 00000000..0ec9eed7 --- /dev/null +++ b/deploy/olm-catalog/application-monitoring-operator/1.8.0/applicationmonitoring.integreatly.org_blackboxtargets_crd.yaml @@ -0,0 +1,71 @@ +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 diff --git a/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_crd.yaml b/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_crd.yaml new file mode 100644 index 00000000..ad90644c --- /dev/null +++ b/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_crd.yaml @@ -0,0 +1,152 @@ +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: + skip: + type: boolean + description: Disable ServiceAccount creation for grafana + 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 \ No newline at end of file diff --git a/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_dashboard_crd.yaml b/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_dashboard_crd.yaml new file mode 100644 index 00000000..b631e3c7 --- /dev/null +++ b/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_dashboard_crd.yaml @@ -0,0 +1,43 @@ +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 diff --git a/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_datasource_crd.yaml b/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_datasource_crd.yaml new file mode 100644 index 00000000..c9be40be --- /dev/null +++ b/deploy/olm-catalog/application-monitoring-operator/1.8.0/grafana_datasource_crd.yaml @@ -0,0 +1,35 @@ +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 diff --git a/deploy/olm-catalog/application-monitoring-operator/application-monitoring-operator.package.yaml b/deploy/olm-catalog/application-monitoring-operator/application-monitoring-operator.package.yaml index 3a4d4c6f..996ed420 100644 --- a/deploy/olm-catalog/application-monitoring-operator/application-monitoring-operator.package.yaml +++ b/deploy/olm-catalog/application-monitoring-operator/application-monitoring-operator.package.yaml @@ -1,5 +1,5 @@ channels: -- currentCSV: application-monitoring-operator.v1.7.0 +- currentCSV: application-monitoring-operator.v1.8.0 name: integreatly defaultChannel: integreatly packageName: application-monitoring-operator diff --git a/deploy/operator.yaml b/deploy/operator.yaml index fd212161..ee6aedbf 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: application-monitoring-operator containers: - name: application-monitoring-operator - image: quay.io/integreatly/application-monitoring-operator:v1.7.0 + image: quay.io/integreatly/application-monitoring-operator:v1.8.0 ports: - containerPort: 8383 name: metrics diff --git a/go.sum b/go.sum index 3bbcb7d2..859adadc 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,8 @@ bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= -cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -44,7 +42,6 @@ github.com/Azure/go-autorest/autorest/validation v0.2.1-0.20191028180845-3492b2a github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.0/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= @@ -101,7 +98,6 @@ github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgI github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.16.26 h1:GWkl3rkRO/JGRTWoLLIqwf7AWC4/W/1hMOUZqmX0js4= github.com/aws/aws-sdk-go v1.16.26/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= @@ -109,7 +105,6 @@ github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod github.com/bazelbuild/bazel-gazelle v0.0.0-20181012220611-c728ce9f663e/go.mod h1:uHBSeeATKpVazAACZBDPL/Nk/UhQDDsJWDlqYJo8/Us= github.com/bazelbuild/buildtools v0.0.0-20180226164855-80c7f0d45d7e/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -118,7 +113,6 @@ github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3 github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= @@ -136,7 +130,6 @@ github.com/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6Z github.com/cespare/xxhash v0.0.0-20181017004759-096ff4a8a059/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.0 h1:yTUvW7Vhb89inJ+8irsUqiWjh8iT6sQPZiQzI6ReGkA= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -168,7 +161,6 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/etcd v3.3.15+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= @@ -176,11 +168,9 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/prometheus-operator v0.34.0 h1:TF9qaydNeUamLKs0hniaapa4FBz8U8TIlRRtJX987A4= github.com/coreos/prometheus-operator v0.34.0/go.mod h1:Li6rMllG/hYIyXfMuvUwhyC+hqwJVHdsDdP21hypT1M= github.com/coreos/prometheus-operator v0.38.1 h1:43h170Ej5EDGjoaRIuJY9OmjXy/MuGOakKfqrq5h0iU= github.com/coreos/prometheus-operator v0.38.1/go.mod h1:xZC7/TgeC0/mBaJk+1H9dbHaiEvLYHgX6Mi1h40UPh8= -github.com/coreos/rkt v1.30.0 h1:Kkt6sYeEGKxA3Y7SCrY+nHoXkWed6Jr2BBY42GqMymM= github.com/coreos/rkt v1.30.0/go.mod h1:O634mlH6U7qk87poQifK6M2rsFNt+FyUTWNMnP1hF1U= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= @@ -219,7 +209,6 @@ github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/docker/libnetwork v0.0.0-20180830151422-a9cd636e3789/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c h1:ZfSZ3P3BedhKGUhzj7BQlPSU4OvT6tfOKe3DVHzOA7s= github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -259,7 +248,6 @@ github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7R github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v0.0.0-20180820084758-c7ce16629ff4/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= @@ -275,7 +263,6 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/zapr v0.1.0 h1:h+WVe9j6HAA01niTJPA/kKH0i7e0rLZBCwauQFcRE54= github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-logr/zapr v0.1.1 h1:qXBXPDdNncunGs7XeEpsJt8wCjYBygluzfdLO0G5baE= github.com/go-logr/zapr v0.1.1/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= @@ -299,7 +286,6 @@ github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1 github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.17.2/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= @@ -359,13 +345,10 @@ github.com/gogo/protobuf v1.2.2-0.20190730201129-28a6bbf47e48/go.mod h1:SlYgWuQ5 github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang-migrate/migrate/v4 v4.6.2/go.mod h1:JYi6reN3+Z734VZ0akNuyOJNcrg45ZL7LDBMW3WGJL0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20181024230925-c65c006176ff h1:kOkM9whyQYodu09SJ6W3NCsHG7crFaJILQ22Gozp3lg= github.com/golang/groupcache v0.0.0-20181024230925-c65c006176ff/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 h1:uHTyIjqVhYRhLbJ8nIiOJHkEZZ+5YoOsAbD3sk82NiE= @@ -376,10 +359,8 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -393,14 +374,11 @@ github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAO github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/cadvisor v0.34.0/go.mod h1:1nql6U13uTHaLYB8rLS5x9IJc2qT6Xd/Tr1sTX6NE48= github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -415,7 +393,6 @@ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= @@ -424,7 +401,6 @@ github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk= @@ -479,7 +455,6 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= @@ -504,7 +479,6 @@ github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63 github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -516,7 +490,6 @@ github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGk github.com/jessevdk/go-flags v0.0.0-20180331124232-1c38ed7ad0cc/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= @@ -526,7 +499,6 @@ github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22 github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -577,7 +549,6 @@ github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= @@ -585,7 +556,6 @@ github.com/maorfr/helm-plugin-utils v0.0.0-20181205064038-588190cb5e3b/go.mod h1 github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/martinlindhe/base36 v1.0.0/go.mod h1:+AtEs8xrBpCeYgSLoY/aJ6Wf37jtBuR0s35750M27+8= -github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a h1:+J2gw7Bw77w/fbK7wnNJJDKmw1IbWft2Ul5BzrG1Qm8= github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a/go.mod h1:M1qoD/MqPgTZIk0EWKB38wE28ACRfVcn+cU08jyArI0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -636,7 +606,6 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -664,7 +633,6 @@ github.com/onsi/ginkgo v1.4.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3 h1:OoxbjfXVZyod1fmWYhI7SEyaD8B00ynP3T+D5GiyHOY= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -672,7 +640,6 @@ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGV github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -706,11 +673,9 @@ github.com/otiai10/mint v1.2.3/go.mod h1:YnfyPNhBvnY8bW4SGQHCs/aAFhkgySlMZbrF5U0 github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20171002181615-b8543db493a5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -729,7 +694,6 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.2.0/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= @@ -737,7 +701,6 @@ github.com/prometheus/client_golang v1.2.1 h1:JnMpQc6ppsNgw9QPAGF6Dod479itz7lvls github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -745,7 +708,6 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= @@ -756,10 +718,8 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.0-20190129233650-316cf8ccfec5/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.6 h1:0qbH+Yqu/cj1ViVLvEWCP6qMQ4efWUj6bQqOEA0V0U4= github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= @@ -820,7 +780,6 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -832,7 +791,6 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -883,9 +841,7 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v0.0.0-20181018215023-8dc6146f7569/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -904,22 +860,18 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529 h1:iMGN4xG0cnqj3t+zOM8wUB0BiPKHEwSxEZCvzcbZuvk= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4 h1:ydJNl0ENAG67pFbB+9tfhiL2pYqLhfoaZFw/cjLhY4A= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= -golang.org/x/crypto v0.0.0-20191028145041-f83a4685e152 h1:ZC1Xn5A1nlpSmQCIva4bZ3ob3lmhYIefc+GU+DLg1Ow= golang.org/x/crypto v0.0.0-20191028145041-f83a4685e152/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 h1:xMPOj6Pz6UipU1wXLkrtqpHbR0AVFnyPEQq/wRWz9lM= @@ -976,11 +928,9 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271 h1:N66aaryRB3Ax92gH0v3hp1QYZ3zWWCCUR/j8Ifh45Ss= golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= @@ -991,10 +941,8 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1014,7 +962,6 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1040,7 +987,6 @@ golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191028164358-195ce5e7f934 h1:u/E0NqCIWRDAo9WCFo6Ko49njPFDLSd3z+X1HgWDMpE= golang.org/x/sys v0.0.0-20191028164358-195ce5e7f934/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056 h1:dHtDnRWQtSx0Hjq9kvKFpBh9uPPKfQN70NZZmvssGwk= @@ -1052,9 +998,7 @@ golang.org/x/text v0.3.1-0.20180805044716-cb6730876b98/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1095,7 +1039,6 @@ golang.org/x/tools v0.0.0-20191111182352-50fa39b762bc/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2 h1:EtTFh6h4SAKemS+CURDMTDIANuduG5zKEXShyy18bGA= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1116,9 +1059,7 @@ google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= @@ -1159,7 +1100,6 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1189,7 +1129,6 @@ gopkg.in/yaml.v2 v2.1.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= @@ -1240,7 +1179,6 @@ k8s.io/kube-aggregator v0.0.0-20191016112429-9587704a8ad4/go.mod h1:+aW0UZgSXdTS k8s.io/kube-controller-manager v0.0.0-20191016114939-2b2b218dc1df/go.mod h1:WgrTcPKYAfNa9C0LV1UeK+XqfbSOUH1WGq/vX5UiW40= k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= -k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d h1:Xpe6sK+RY4ZgCTyZ3y273UmFmURhjtoJiwOMbQsXitY= k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a h1:UcxjrRMyNx/i/y8G7kPvLyy7rfbeuf1PYyBf973pgyU= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= @@ -1258,7 +1196,6 @@ k8s.io/repo-infra v0.0.0-20181204233714-00fe14e3d1a3/go.mod h1:+G1xBfZDfVFsm1Tj/ k8s.io/sample-apiserver v0.0.0-20191016112829-06bb3c9d77c9/go.mod h1:sXltHZrQa4jdKL14nOFRRUhhzpmbnRF0qGuAhRQbaxc= k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0= k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 h1:Gi+/O1saihwDqnlmC8Vhv1M5Sp4+rbOmK9TbsLn8ZEA= k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6 h1:p0Ai3qVtkbCG/Af26dBmU0E1W58NID3hSSh7cMyylpM= k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= diff --git a/pkg/controller/applicationmonitoring/templateHelper.go b/pkg/controller/applicationmonitoring/templateHelper.go index d57744ad..9894d3ad 100644 --- a/pkg/controller/applicationmonitoring/templateHelper.go +++ b/pkg/controller/applicationmonitoring/templateHelper.go @@ -61,6 +61,7 @@ type Parameters struct { GrafanaSessionSecret string GrafanaProxySecretName string GrafanaRouteName string + SkipGrafanaServiceAccount string PrometheusCrName string PrometheusRouteName string PrometheusServiceName string @@ -124,6 +125,7 @@ func newTemplateHelper(cr *applicationmonitoring.ApplicationMonitoring, extraPar GrafanaProxySecretName: GrafanaProxySecretName, GrafanaServiceName: GrafanaServiceName, GrafanaRouteName: GrafanaRouteName, + SkipGrafanaServiceAccount: SkipGrafanaServiceAccount(), PrometheusOperatorName: PrometheusOperatorName, ApplicationMonitoringName: ApplicationMonitoringName, PrometheusCrName: PrometheusCrName, @@ -149,17 +151,17 @@ func newTemplateHelper(cr *applicationmonitoring.ApplicationMonitoring, extraPar ImageTagOAuthProxy: "4.8", ImageGrafana: "quay.io/openshift/origin-grafana", ImageTagGrafana: "4.9", - ImageGrafanaOperator: "quay.io/integreatly/grafana-operator", - ImageTagGrafanaOperator: "v3.10.2", + ImageGrafanaOperator: "quay.io/rhoas/grafana-operator", + ImageTagGrafanaOperator: "v3.10.3", ImageConfigMapReloader: "quay.io/openshift/origin-configmap-reloader", ImageTagConfigMapReloader: "4.9", ImagePrometheusConfigReloader: "quay.io/openshift/origin-prometheus-config-reloader", ImageTagPrometheusConfigReloader: "4.9", - ImagePrometheusOperator: "quay.io/coreos/prometheus-operator", - ImageTagPrometheusOperator: "v0.40.0", + ImagePrometheusOperator: "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:19ecf8f3cb62545bc81eeddd3ef8adc105ec5bad5538ee556aade7eb8f9d6dbf", + ImageTagPrometheusOperator: "", ImagePrometheus: "quay.io/openshift/origin-prometheus", ImageTagPrometheus: "4.9", - ImageBlackboxExporter: "quay.io/prometheus/blackbox-exporter", + ImageBlackboxExporter: "quay.io/integreatly/prometheus-blackbox-exporter", ImageTagBlackboxExporter: "v0.19.0", PrometheusVersion: "v2.19.0", PriorityClassName: cr.Spec.PriorityClassName, @@ -170,7 +172,6 @@ func newTemplateHelper(cr *applicationmonitoring.ApplicationMonitoring, extraPar Affinity: PopulateAffinityRule(cr.Spec.Affinity), ExtraParams: extraParams, } - templatePath, exists := os.LookupEnv("TEMPLATE_PATH") if !exists { templatePath = "./templates" @@ -187,6 +188,20 @@ func newTemplateHelper(cr *applicationmonitoring.ApplicationMonitoring, extraPar } } +func SkipGrafanaServiceAccount() string { + value, exist := os.LookupEnv("LOCAL_INSTALL") + if exist { + // If local install is true then do not skip service account creation + if value == "True" { + return "False" + } else { + return "True" + } + } + + return "False" +} + // PopulateSessionProxySecret generates a session secret func PopulateSessionProxySecret() string { p, err := GeneratePassword(43) diff --git a/templates/grafana.yaml b/templates/grafana.yaml index 0f1056ab..a7f82fa3 100644 --- a/templates/grafana.yaml +++ b/templates/grafana.yaml @@ -66,7 +66,7 @@ spec: compat: fixAnnotations: True serviceAccount: - skip: True + skip: {{ .SkipGrafanaServiceAccount }} annotations: serviceaccounts.openshift.io/oauth-redirectreference.primary: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"grafana-route"}}' dashboardLabelSelector: diff --git a/templates/prometheus-operator.yaml b/templates/prometheus-operator.yaml index a8572fe5..80d10bb7 100644 --- a/templates/prometheus-operator.yaml +++ b/templates/prometheus-operator.yaml @@ -18,13 +18,12 @@ spec: containers: - args: - --kubelet-service=kube-system/kubelet - - --logtostderr=true - -log-level=warn - - --config-reloader-image={{ .ImageConfigMapReloader }}:{{ .ImageTagConfigMapReloader }} - --prometheus-config-reloader={{ .ImagePrometheusConfigReloader }}:{{ .ImageTagPrometheusConfigReloader }} - --prometheus-instance-namespaces={{ .PrometheusInstanceNamespaces }} - --alertmanager-instance-namespaces={{ .AlertmanagerInstanceNamespaces }} - image: {{ .ImagePrometheusOperator }}:{{ .ImageTagPrometheusOperator }} + - --thanos-ruler-instance-namespaces={{ .Namespace }} + image: {{ .ImagePrometheusOperator }} name: prometheus-application-operator ports: - containerPort: 8080 diff --git a/version/version.go b/version/version.go index ba52f852..32fa7893 100644 --- a/version/version.go +++ b/version/version.go @@ -1,5 +1,5 @@ package version var ( - Version = "1.7.0" + Version = "1.8.0" )