1
0
Fork 0
mirror of https://github.com/prometheus-operator/prometheus-operator.git synced 2025-04-16 01:06:27 +00:00

Update Prometheus and Thanos versions (#3605)

It also updates the TLS certificates used by the remote write end-to-end
tests because Go 1.15 (used to compile Prometheus v2.22.0) has stopped
supporting the "CommonName" field in X509 certificates. Certificates
have to use the "Subject Alternative Names" field instead.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
This commit is contained in:
Simon Pasquier 2020-10-26 09:42:05 +01:00 committed by GitHub
parent 005278276d
commit e31afb14d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 539 additions and 369 deletions

View file

@ -61,7 +61,11 @@ The versions of Prometheus compatible to be run with the Prometheus Operator are
* v2.19.0
* v2.19.1
* v2.19.2
* v2.19.3
* v2.20.0
* v2.20.1
* v2.21.0
* v2.22.0
## Alertmanager

View file

@ -167,44 +167,7 @@ generate-crds: $(CONTROLLER_GEN_BINARY) $(GOJSONTOYAML_BINARY) $(TYPES_V1_TARGET
.PHONY: generate-remote-write-certs
generate-remote-write-certs:
mkdir -p test/e2e/remote_write_certs && \
openssl req -newkey rsa:4096 \
-new -nodes -x509 -sha256 \
-days 3650 \
-out test/e2e/remote_write_certs/ca.crt \
-keyout test/e2e/remote_write_certs/ca.key \
-subj "/CN=caandserver.com"
openssl req -new -newkey rsa:4096 \
-keyout test/e2e/remote_write_certs/client.key \
-out test/e2e/remote_write_certs/client.csr \
-nodes \
-subj "/CN=PrometheusRemoteWriteClient"
openssl x509 -req -sha256 \
-days 3650 \
-in test/e2e/remote_write_certs/client.csr \
-CA test/e2e/remote_write_certs/ca.crt \
-CAkey test/e2e/remote_write_certs/ca.key \
-set_serial 02 \
-out test/e2e/remote_write_certs/client.crt
rm test/e2e/remote_write_certs/client.csr
openssl req -newkey rsa:4096 \
-new -nodes -x509 -sha256 \
-days 3650 \
-out test/e2e/remote_write_certs/bad_ca.crt \
-keyout test/e2e/remote_write_certs/bad_ca.key \
-subj "/CN=badcaandserver.com"
openssl req -new -newkey rsa:4096 \
-keyout test/e2e/remote_write_certs/bad_client.key \
-out test/e2e/remote_write_certs/bad_client.csr \
-nodes \
-subj "/CN=BadPrometheusRemoteWriteClient"
openssl x509 -req -sha256 \
-days 3650 \
-in test/e2e/remote_write_certs/bad_client.csr \
-CA test/e2e/remote_write_certs/bad_ca.crt \
-CAkey test/e2e/remote_write_certs/bad_ca.key \
-set_serial 02 \
-out test/e2e/remote_write_certs/bad_client.crt
rm test/e2e/remote_write_certs/bad_client.csr
(cd scripts && GOOS=$(OS) GOARCH=$(ARCH) go run -v ./certs/.)
bundle.yaml: generate-crds $(shell find example/rbac/prometheus-operator/*.yaml -type f)
scripts/generate-bundle.sh

View file

@ -20,7 +20,7 @@ const (
DefaultAlertmanagerVersion = "v0.21.0"
DefaultAlertmanagerBaseImage = "quay.io/prometheus/alertmanager"
DefaultAlertmanagerImage = DefaultAlertmanagerBaseImage + ":" + DefaultAlertmanagerVersion
DefaultThanosVersion = "v0.14.0"
DefaultThanosVersion = "v0.15.0"
DefaultThanosBaseImage = "quay.io/thanos/thanos"
DefaultThanosImage = DefaultThanosBaseImage + ":" + DefaultThanosVersion
)
@ -71,7 +71,11 @@ var (
"v2.19.0",
"v2.19.1",
"v2.19.2",
"v2.19.3",
"v2.20.0",
"v2.20.1",
"v2.21.0",
"v2.22.0",
}
DefaultPrometheusVersion = PrometheusCompatibilityMatrix[len(PrometheusCompatibilityMatrix)-1]
DefaultPrometheusBaseImage = "quay.io/prometheus/prometheus"

167
scripts/certs/generate.go Normal file
View file

@ -0,0 +1,167 @@
// Copyright 2020 The prometheus-operator Authors
//
// 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.
// Program to generate TLS materials for remote write end-to-end tests.
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"crypto/x509/pkix"
"encoding/pem"
"fmt"
"log"
"math/big"
"os"
"path/filepath"
"time"
)
const (
certDirectory = "../test/e2e/remote_write_certs"
validityPeriod = 10 * 365 * 24 * time.Hour
)
func writePEMFile(file, typ string, b []byte) error {
f, err := os.Create(file)
if err != nil {
return fmt.Errorf("failed to open %s for writing: %v", file, err)
}
if err := pem.Encode(f, &pem.Block{Type: typ, Bytes: b}); err != nil {
return fmt.Errorf("failed to write data to %s: %v", file, err)
}
if err := f.Close(); err != nil {
return fmt.Errorf("error closing %s: %v", file, err)
}
log.Printf("wrote %s\n", file)
return nil
}
func writeCert(name string, b []byte) error {
return writePEMFile(filepath.Join(certDirectory, fmt.Sprintf("%s.crt", name)), "CERTIFICATE", b)
}
func writeKey(name string, priv *rsa.PrivateKey) error {
b, err := x509.MarshalPKCS8PrivateKey(priv)
if err != nil {
return fmt.Errorf("failed to marshal private key: %v", err)
}
return writePEMFile(filepath.Join(certDirectory, fmt.Sprintf("%s.key", name)), "PRIVATE KEY", b)
}
type certificate struct {
name string
subject string
}
func generateMaterials(ca, client certificate) error {
now := time.Now()
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
if err != nil {
return fmt.Errorf("failed to generate CA serial number: %v", err)
}
caKey, err := rsa.GenerateKey(rand.Reader, 4096)
if err != nil {
return fmt.Errorf("failed to generate CA private key: %v", err)
}
clientKey, err := rsa.GenerateKey(rand.Reader, 4096)
if err != nil {
return fmt.Errorf("failed to generate client private key: %v", err)
}
// Generate the CA.
caCert := x509.Certificate{
SerialNumber: serialNumber,
Subject: pkix.Name{
CommonName: ca.subject,
},
NotBefore: now,
NotAfter: now.Add(validityPeriod),
KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment | x509.KeyUsageCertSign,
IsCA: true,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageAny},
BasicConstraintsValid: true,
DNSNames: []string{ca.subject},
}
b, err := x509.CreateCertificate(rand.Reader, &caCert, &caCert, &caKey.PublicKey, caKey)
if err != nil {
return fmt.Errorf("failed to create CA certificate: %v", err)
}
if err := writeCert(ca.name, b); err != nil {
return fmt.Errorf("failed to write CA certificate: %v", err)
}
if err := writeKey(ca.name, caKey); err != nil {
return fmt.Errorf("failed to write CA key: %v", err)
}
// Generate the client certificate/key.
clientCert := x509.Certificate{
SerialNumber: serialNumber.Add(serialNumber, big.NewInt(1)),
Subject: pkix.Name{
CommonName: client.subject,
},
NotBefore: now,
NotAfter: now.Add(validityPeriod),
KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageAny},
BasicConstraintsValid: true,
DNSNames: []string{client.subject},
}
b, err = x509.CreateCertificate(rand.Reader, &clientCert, &caCert, &clientKey.PublicKey, caKey)
if err != nil {
return fmt.Errorf("failed to create client certificate: %v", err)
}
if err := writeCert(client.name, b); err != nil {
return fmt.Errorf("failed to write client certificate: %v", err)
}
if err := writeKey(client.name, clientKey); err != nil {
return fmt.Errorf("failed to write client key: %v", err)
}
return nil
}
func main() {
log.Println("Generating remote write certificates in", certDirectory)
err := generateMaterials(
certificate{name: "ca", subject: "caandserver.com"},
certificate{name: "client", subject: "PrometheusRemoteWriteClient"},
)
if err != nil {
log.Fatal(err)
}
err = generateMaterials(
certificate{name: "bad_ca", subject: "badcaandserver.com"},
certificate{name: "bad_client", subject: "BadPrometheusRemoteWriteClient"},
)
if err != nil {
log.Fatal(err)
}
}

View file

@ -246,9 +246,12 @@ func createK8sSampleApp(t *testing.T, name, ns string) (string, int32) {
return svc.Spec.ClusterIP, svc.Spec.Ports[1].Port
}
func createK8sAppMonitoring(t *testing.T, name, ns string, prwtc testFramework.PromRemoteWriteTestConfig,
svcIp string, svcTLSPort int32) {
func createK8sAppMonitoring(
name, ns string,
prwtc testFramework.PromRemoteWriteTestConfig,
svcIP string,
svcTLSPort int32,
) (*monitoringv1.Prometheus, error) {
sm := framework.MakeBasicServiceMonitor(name)
sm.Spec.Endpoints = []monitoringv1.Endpoint{
{
@ -278,33 +281,27 @@ func createK8sAppMonitoring(t *testing.T, name, ns string, prwtc testFramework.P
}
if _, err := framework.MonClientV1.ServiceMonitors(ns).Create(context.TODO(), sm, metav1.CreateOptions{}); err != nil {
t.Fatal("creating ServiceMonitor failed: ", err)
return nil, errors.Wrap(err, "creating ServiceMonitor failed")
}
prometheusCRD := framework.MakeBasicPrometheus(ns, name, name, 1)
url := "https://" + svcIp + ":" + fmt.Sprint(svcTLSPort)
url := "https://" + svcIP + ":" + fmt.Sprint(svcTLSPort)
framework.AddRemoteWriteWithTLSToPrometheus(prometheusCRD, url, prwtc)
if _, err := framework.CreatePrometheusAndWaitUntilReady(ns, prometheusCRD); err != nil {
t.Fatal(err)
return nil, err
}
promSVC := framework.MakePrometheusService(prometheusCRD.Name, name, v1.ServiceTypeClusterIP)
if _, err := testFramework.CreateServiceAndWaitUntilReady(framework.KubeClient, ns, promSVC); err != nil {
t.Fatal(err)
return nil, err
}
// Check for proper scraping.
if err := framework.WaitForHealthyTargets(ns, promSVC.Name, 1); err != nil {
t.Fatal(err)
}
return prometheusCRD, nil
}
func testPromRemoteWriteWithTLS(t *testing.T) {
// can't extend the names since ns cannot be created with more than 63 characters
tests := []testFramework.PromRemoteWriteTestConfig{
// working configurations
{
Name: "variant-1",
@ -711,6 +708,7 @@ func testPromRemoteWriteWithTLS(t *testing.T) {
}
for _, test := range tests {
test := test
t.Run(test.Name, func(t *testing.T) {
t.Parallel()
@ -723,18 +721,25 @@ func testPromRemoteWriteWithTLS(t *testing.T) {
name := "test"
// apply authorized certificate and key to k8s as a Secret
createK8sResources(t, ns, certsDir, test.ClientKey, test.ClientCert, test.CA)
// Setup a sample-app which supports mTLS therefore will play 2 roles:
// 1. app scraped by prometheus
// 2. TLS receiver for prometheus remoteWrite
svcIp, svcTLSPort := createK8sSampleApp(t, name, ns)
svcIP, svcTLSPort := createK8sSampleApp(t, name, ns)
// Setup monitoring.
prometheusCRD, err := createK8sAppMonitoring(name, ns, test, svcIP, svcTLSPort)
if err != nil {
t.Fatal(err)
}
createK8sAppMonitoring(t, name, ns, test, svcIp, svcTLSPort)
// Check for proper scraping.
promSVC := framework.MakePrometheusService(name, name, v1.ServiceTypeClusterIP)
if err := framework.WaitForHealthyTargets(ns, promSVC.Name, 1); err != nil {
framework.PrintPrometheusLogs(t, prometheusCRD)
t.Fatal(err)
}
//TODO: make it wait by poll, there are some examples in other tests
// use wait.Poll() in k8s.io/apimachinery@v0.18.3/pkg/util/wait/wait.go
@ -759,12 +764,16 @@ func testPromRemoteWriteWithTLS(t *testing.T) {
if test.ShouldSuccess {
for _, v := range possibleErrors {
if strings.Contains(appLogs, v) {
t.Fatalf("test with (%s, %s, %s) faild\nscraped app logs shouldn't containe '%s' but it does",
framework.PrintPrometheusLogs(t, prometheusCRD)
t.Fatalf("test with (%s, %s, %s) failed\nscraped app logs shouldn't contain '%s' but it does",
test.ClientKey.Filename, test.ClientCert.Filename, test.CA.Filename, v)
}
}
} else if !strings.Contains(appLogs, possibleErrors[test.ExpectedInLogs]) {
t.Fatalf("test with (%s, %s, %s) faild\nscraped app logs should containe '%s' but it doesn't",
framework.PrintPrometheusLogs(t, prometheusCRD)
t.Fatalf("test with (%s, %s, %s) failed\nscraped app logs should contain '%s' but it doesn't",
test.ClientKey.Filename, test.ClientCert.Filename, test.CA.Filename, possibleErrors[test.ExpectedInLogs])
}
})

View file

@ -1,30 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFGzCCAwOgAwIBAgIUNzPu1jY8H7PfZbXyEdtYgIR1V6kwDQYJKoZIhvcNAQEL
BQAwHTEbMBkGA1UEAwwSYmFkY2FhbmRzZXJ2ZXIuY29tMB4XDTIwMDYyNTA4NDUz
NloXDTMwMDMyNTA4NDUzNlowHTEbMBkGA1UEAwwSYmFkY2FhbmRzZXJ2ZXIuY29t
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsk8T3CBvBDARiOyxm/gY
mba6vuIaN2YMfXgPFSh0GT3JF/thRVTLf3hb21UN/NGhUOwEWLlNOD7qtD6/ONgx
2hcGyoe6xJjeDFDYWvsK67ZsujU7kw4kTksOpoQeuXkW1Zq2FRLqwy/IxDgrol3f
M95Hdi9uKHiaaeLum5zRpTfs/NKkTHGkh3EWUuQIdROzMeN97H6VhvzNAGb+b60Q
8SgoE9hZUdzu9k7u48pq6mVfKAAPE20ME37zmIXX8p2m+vJrMK+hhJWJmx7Rfaiz
EvkqBoLX5gSOceONoFWoPx63wGGuZfrCgYWduT6xy9BtOhxcV5eT7WMn4eapvcb4
2uOfDrUNILbjaCSqesFMy4ru7LL7pt1jrHFnsDd+wrUmYvJ+A/do5le1/X6jNS8P
ixeXS9UB4RVj457hFx+whDgp/P+1cgJAl0rOGHD4L2VjcO1rbm0X3W5F41ZcIdQ9
SZgJSTRwzcSfZLSk5v0LWD9nXYmUAeVeWZjY4v52ORjYJvmxUI2vYJwnJBgrlIx/
cs5YmckXLZV1g3Rbjhq25pB8LhQI5hnvzhzceaCPZWRuYOjdIAb3Ugu/G8DDl2sf
Tawm2RYykbgPyNRWg5WYFM63oeWQxlBVPhAfXRCR7HIx624QScNFc335/a1yfEYD
r5U/B+4CRT7yD6RC195DMY0CAwEAAaNTMFEwHQYDVR0OBBYEFBm3pLY+jshQGth2
Q+a2/+RxaPbyMB8GA1UdIwQYMBaAFBm3pLY+jshQGth2Q+a2/+RxaPbyMA8GA1Ud
EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBABGTm2U+khEqda2HITX/V1ct
uEgcEYmM7rY9+2wfA/ZR7a5I6qBiiLl8oVn4TKcqLZ7+c3degsm0mqX9wHsm1p2I
wr7jgopzwWDFjA7iP2MdC0W909527o0/96JL1qRbehDTicbJOD29HCwFMXI5hl4p
mcF9nUc/fbTTBJQPdOU1Zop99UEiFZ/wIxDbGmLh/1j5axD7CrkB9OK8fY9IGx24
KH9UUaBsPtmJV+z5my+QDICVqV6XzHsn8hJFqlsj/vOkzxsuNF2DkicRUYUiET72
sUw9rYQn/jBZhcIyK+4a1jCPEvwP6qEn0d1DBSYRhK7oRHx5xjDT8yjHPnnI7Cii
ce4vOxg2Vao+J/ycNDSdeBYacMlLMkF26DjZB08XayWu1G7qk5ldjuEy+QA1+cH3
6pZfmOldHE6vRfhh/7mgj6CM8JuwHmj3tZE3XV2/26DPzRB+wwLPFUMsTnUXgWoT
aRBVzJW606gSb2Prse3p8/Dcdric93dEFXmwbvXMRp1cvfozhxESu/2qlD8sUJ4K
xkQdDKH7e8dGFS8+ovnui5GEZZdBXUYYMBKj2eByAaiD2FaLXXZtwCy976Lukf8U
tU1MCtRo7QFj3XRY8ogD/OiGZji3A8ll/B26hikfkJMBTuOB+OaugY61VG4TO8hV
5awcYFGU32TffG6vKgNj
MIIFNzCCAx+gAwIBAgIRANrnBSPpUCsyP6m8Nh5CakkwDQYJKoZIhvcNAQELBQAw
HTEbMBkGA1UEAxMSYmFkY2FhbmRzZXJ2ZXIuY29tMB4XDTIwMTAyMzE0MzkxM1oX
DTMwMTAyMTE0MzkxM1owHTEbMBkGA1UEAxMSYmFkY2FhbmRzZXJ2ZXIuY29tMIIC
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr1naQGSCnHXsXIM7+I22kn07
W1Ja8jM/0djwQ+J2k3LYBvHE4oAYWpX4CP+7otYwZvcyjzW+xdiwoJcZak8DJdzg
EgIhtPvwOdd5KcSvAV+pb4ouDy5UftS3fQAq8vR2FbvZQiPj4LIyjifaRnFX+YE6
zp0w9qlPtvfd3fUAUEChRgVIWiDacfteBXmCNVk3DEExD526aIQjLD1a3e1HfCsl
x8pSWgwos3SfnWRoDZmfXUY15g0QSM3OM49qR7EOCeHmgWWlPXSw+GhIrFu1Q6EY
C1rkZnmtrKpWe3WRtBHJ9Pynwob+4X6+wDsPhy7ZOGhnL8qCMR0b8zvxa/pJoEj7
azJNmAYTiYTpw23zX88BckF2qV0MIa+6zXFPogIibjnd/bHhSEdyrRZS9Ip3Mfg1
PkHMHx8RW0/93jzbDMaf8PjZIAwYvXNg3cI+P/HaqhbKgsdxKSdF8A89lD9XFcVl
++nakMTQhOEmqu99aTKE7nXCKjhAdPGNfOTmfLobuL3Zpd1gceYgCx4ReFIjEbla
yKNHfMNm8BT0JBnz7jxwH3TVj1M02mS0t0PiNSpcz+AKRrOqqHJVVIK2MQqJtbfA
pFAarqTeGzY3TBQ5gTs5Hn8CY715Pa+Tu6zwWvC+4S8qo0QUupkatMvqVmqGuU7G
BDaZE9+UfftV0E6trxMCAwEAAaNyMHAwDgYDVR0PAQH/BAQDAgKkMA8GA1UdJQQI
MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJeazs3tKiJghkzTx
f5nGy+O05GwwHQYDVR0RBBYwFIISYmFkY2FhbmRzZXJ2ZXIuY29tMA0GCSqGSIb3
DQEBCwUAA4ICAQBe7kMLGK4TQ1Gd+79xxGqxz/uJc592ZwwBFYfA6TxYhJoMh3vB
RuWpDh8EzjMe/0Jla2ohO7AZTM8N7n1mKgnIkaVnKuM5VQnTdFl5JqDpwTi1NCW3
zRAZ+DyQcGE9YqqZhxZeUKdTVemBceerqpRSjZbJgMpPG67MUCnbfE2EmtwUyjWd
ehqzJLvwwXhw8Jc/LY7wTw9aPNRTVamYnaBwCE4CEIuUCqH0zKqBA9eUs/QwOcx/
D2SKPDGO+ZTQvkmLhbISoISpTfmGMIYG6ORGQmryw1b/sz4Xgnm/AWt9TrAMecfl
RDuJ25bun+l4ST++DI1tbFarnF93sPcGm/0cVzJamM9rEA3tWasEK9liuvcL6trE
fr+Gx6PjlDGxWIL6i2kvzSv2Wa4HQ0Eh0oOC9HlMdZERUExF2r2BQJFba85+4zQg
PsDZoOOZcWh7ipx4F0zsOjJenYq53LZ1KcXWPozr0fKYlLGSpYDr1ILQGg2AJp/f
fkCnrNFZigyIFaYg8wSjv8iZSieCRIiDf8SOjLeeXvIhpnoEVRuQo7vOKkSQ14mV
SVdKvGnKd9yB9s149BCPgYXmxaXJuoCKVNi7ichHfe2kds4QVYLQS7sCNDfrctVd
znqQKnji2LGpaeUQjpQZpO5Ch7ZB41V64fYxgiiEfnIiQjTBaPoodOxaCg==
-----END CERTIFICATE-----

View file

@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
6kLRlwtLCi+j/f1ocIoxzz2unKYWWw==
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
on9XcYTvS0rQyxqFy8EEAsZiDOLUeUdoFw==
-----END PRIVATE KEY-----

View file

@ -1,28 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIEujCCAqICAQIwDQYJKoZIhvcNAQELBQAwHTEbMBkGA1UEAwwSYmFkY2FhbmRz
ZXJ2ZXIuY29tMB4XDTIwMDYyNTA4NDcwN1oXDTIxMDYyNTA4NDcwN1owKTEnMCUG
A1UEAwweQmFkUHJvbWV0aGV1c1JlbW90ZVdyaXRlQ2xpZW50MIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEAsc0A6Hlequh5wCagVJAM5SDlz/DItgGGQLle
oplfRcd3xSnraFJsXGCfrf/c/r/XjINVBTG+afmwCHpzaaC4J2JEgIqg1WKWTIyl
NV0UwxFI8HtmpBBDsRUflisWg3Gh40XlHTIDOln8wLwIX6Wx+VfC1HInRckdDjuo
hAfCgA+D6cJHGUMuLhXk3voCi9KbdI5b+XfmOtJm1juFqT3Ogb+XDwd9rVsGPYGB
ZauHQvAEfKXh3Qk5cfZu07wGC7Na0n7ugQEJ51sUkOsyQtpjaZDMomuLa6xfQEZk
5LJ28S3y72az6p0LWWJRJQBcPVRgNbPRG7GaDkuayWPZN35/WLleCmG4bg/yuc5D
SvF7IiciRfY1bixFSeQUf4EIFR8FGWCNpEo0zQpHwbZls10Ut/XsjuzmDwmeLOpj
TR1GD+aM6pob9V0naACW4gbymbjp7VAWItq79ME4YaYej3Nteou0bjuYxiYss6lb
ByOzS+WgZ7nj1+y0Nt2sRs1jghLmW7L/LfPW3foJ3NkYu+SpH8CRZ1G4eRy5p8vK
OB59DGcI6vL9nKo93gpqrhTj990iHzKeVUd1d9zeaV2vj+LcyFjk4x5M5HCxXDOR
J4QWftyv5p2BkaOSFhJkbDLIH8E45wlTxuAokioO+PhDU18s9LfcLwiOoJWbPXbx
10c5DXcCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAWAEQ8/a9dy4k3BKimfQWAJnU
Zo3zivqNTNHVT2Tqwp91KQ125NNJgGXOMA+OBOt7fpDY8qVkOO5o6Ks7gh88s+Oz
DoKukkmM1ntzq3W8xwidt6tvdYvqbvRE3NpvYiX2PjPegrvrcGQVMA1wv8krLasf
kHhGhsVDSg4TKNYRLA2e7jcX9V/clkGJYnhpJkzZXule0Y/G9yYMW4J8iYXmbjH8
eTjrqjEj5fNjHYYFU65ucGos7MrAvSZFwzMClYdwI++W+ISS2MNN00t8V6d46JMT
kt6S5cawokkQ3AwtDQqhv/XDRlp+1jxPWw4b/O20UBApfB6B+buGw+Z+nwyqGq8Y
CwTjsz7+cJ1oSuMXndiqVx+LZqE8cdjQrg0cUATNbJ8x48a9csLLiGYi68xlSR8n
v0P3cN+4JuUiocZGrEw/kyCm6L88a279uonQpwCisbRodtohwSQmumPtf04WsztW
Q1CASkggp1VU8e50Mp9RhUl6qfPEFUjBNLPha6IGA9SjnAVgXSOc009AjM/uV+ZL
RQm2aO2wOXGo1Hc3Y08ihMQiqSp+svXTWvxvbXRKf5vp5XyhWrcfuXm2vjhpjCAC
ztF7hdFvlP2tOufKW8w8Z0IPUjIQh+/DUscDNZVonc789IiVoTtsb1fMd14pedI+
rpsRRfeU5GMsbq5URoo=
MIIFLTCCAxWgAwIBAgIRANrnBSPpUCsyP6m8Nh5CakowDQYJKoZIhvcNAQELBQAw
HTEbMBkGA1UEAxMSYmFkY2FhbmRzZXJ2ZXIuY29tMB4XDTIwMTAyMzE0MzkxM1oX
DTMwMTAyMTE0MzkxM1owKTEnMCUGA1UEAxMeQmFkUHJvbWV0aGV1c1JlbW90ZVdy
aXRlQ2xpZW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz2fa+bMk
kpAej9ToAxqH9zs23SyybgskkfWK6FvzrMFoP7qNW/DJqLm39dGEhbQJ+veaEhJR
luz2xNNscwHSh3LNgvuEhNJCihxNbzjLg7vBhHQaMEfQn6LDtn8m639Q5OnfWZ0g
S48Jb1BY/K+3iuZVOedwO8zV/YbS8b64j+duf+qb6r1V30hgrupfZen2iCh2NoCu
QFTZq78vWbmAl8d4uY3LS5by8yKXe+XOA5Sql9a7prddRylt7kiME3K68ou14ra+
24DH63oCeAbR1TI3uU02DAYCC2Z7ncOBte8yddDXuLWmQLtOhu970dmkZvYX0LbM
+75TC8oHPo+riGtJB5Z4IlAB0CFCfzE8XMsZq9vKVn7iUhzG7yojjlapuE5QOnsk
qVmGbHrrrwW/ziG/T9mqnjDSqjEazWT2JNieAr4d2sMdbxpAnqXacw2ERxJYPT9Q
uzHzWvpY3n+nEZGNHYwnYx4y68XQgZ2JjoMRyFhsaNvUw9tSABQv0YoEwFXJ1Cys
kUQjnNugJZgQCnguDSWK9K98RW/zdJk1oXG3CL7tw3fHJqJ6c1ur86zJHrqUysST
fDoM3QYwM2jGOMNdBz+ywmJsoN2U/x8Hh1b7HJja5JTis9pLTnDh8buXDN9rNmiV
XuYCKjFRzaUfv2yycDotAtxzRBsqeRsbNrUCAwEAAaNcMFowDgYDVR0PAQH/BAQD
AgWgMA8GA1UdJQQIMAYGBFUdJQAwDAYDVR0TAQH/BAIwADApBgNVHREEIjAggh5C
YWRQcm9tZXRoZXVzUmVtb3RlV3JpdGVDbGllbnQwDQYJKoZIhvcNAQELBQADggIB
AFbveJWh1szWMaFpxtzUMPsoW/fZL53m8lseT5WQ5L9Fvi8O5+Rk1sPBlbo6rObO
vOyE54iGkMt0ENylR1muldmAuXcP9U/S+2OtslHSgOXlbMlO6d3zjo0ygLOsgsiE
mZunTgUi3eSys9a4+/9PPJXjeLj6dSd5tafOynuvQXF2JcbhkCTOc98X5IUqGWj0
Ds/B/tzVfB3V25XeFheRoO8cRMgjh8ORzR5VJWFsGauAhBtmURqLN69nYCQajXUB
K0MYB4yW7GK916Sxmla6to8utugx/LWUcg0lhH1dfw0obPgvT/EihcwD+eDfmZdJ
7s+dJHs5cEmTR40y2iCEgbnlW01pHX5X+p8AA8UhCTN5VzF901eo1/WEPL98wV6f
8J/yeaOQogrxmzVGdtmn+St7e4ipN4pr02qT07GGrC+RvzGK4MTZgK6tQh54384z
q68v8zIcjlzX/EDSFi/lLQ0p8Uhi5Umv2rQMBsBNK+8yR47M3yBTcMe3ZpyBpfC7
xVuDkCdP4Xt3NBF1McefvxH6OJN4iK1E8IdjQXxzuq/nDLDn4tvXx5Y601oJZ5UB
P9eoL4z9bmHxmMQcVKpjtsS39mutCypzyxBJY51Ej6D7lbdaqi6eNkdy5XUzdIUX
oY0Iw7StC41VNpm4okSbwm9SrOBSnEyNE7UnXnxwfQm2
-----END CERTIFICATE-----

View file

@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
nngwzA+PJBzW1h+TsiRLv3C1Hbx8
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
lxKH0O04/6kXms+DCld2vZgFMdJ0LQ==
-----END PRIVATE KEY-----

View file

@ -1,30 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFFTCCAv2gAwIBAgIUfqVIf4YOSZDBEitGaFAENEbZWLwwDQYJKoZIhvcNAQEL
BQAwGjEYMBYGA1UEAwwPY2FhbmRzZXJ2ZXIuY29tMB4XDTIwMDYyNTA4MjU0M1oX
DTMwMDMyNTA4MjU0M1owGjEYMBYGA1UEAwwPY2FhbmRzZXJ2ZXIuY29tMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3ewqhuqTIM+mDgOlNQPTzvRAg4nO
EE6RTkDDVesl+htsUk1VjfK9wQtYHXg3ImjRKZBqruTnM9v2E7Mo3rY3hq1QzB7V
f+oABhiXhjzZpsQJWftZHDV5QBMWWPR0W+UmeGCJ8YwRY8Z25KTwJvp3mRvE1/Wq
lIsip/+x1lUg5vRbkHqCOpDWJp4Rk8hoMbS7n0lefqCBHX5UQqfG5tjF7K9Liniv
mxrq7ZVm6QFWCfbeIeh/g7kPLkypbr7wcthfIs/Mn8xodEmjC4bbT71sscgZRV2P
2A+gmR+V4dm6Reo19va2egIFJhSEcUSUlZdzR+A/dGTUHuye+Gy6mM4aPYCfm3nv
bosKfW4HHKzsql+HQpwC61mrjiQSNKpagd+P9n/8vI9wFO9nup095t45fxiF6JvU
na3kwn1iz4ldi//5lkRUqbjSrbIU0NNV6Uoe5pg9gIa2U3FhitCZ8WTiVOH8YRRT
CWGATcSatTymuNb3ebNIfcTX8fBzfx3DD/p+2PopcYAS6ZsC+6BvTEJsqBD5K4pG
Zfe7NkqNoiVbtSPFlgspqZbL3kupelPOq1gItggt6mkLDpMwD+JHJfKsNG2MN/H4
kIxKrgnUM5Vfdnt1f8C5895JHYStl5WmIo29+Xndy+jD1JYcnf9iTuriG45/P7Kc
j1fBucTY11Ei5DECAwEAAaNTMFEwHQYDVR0OBBYEFAjw74KeHGjTaf+Rj0VC6Dr+
hgw4MB8GA1UdIwQYMBaAFAjw74KeHGjTaf+Rj0VC6Dr+hgw4MA8GA1UdEwEB/wQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggIBANwpemNqYCOUfzxsgBqS/Rn2hZ64cBau
BIzBPq0R8rs/HLIxqiEO89LxBJpAlf2GNGUUKR21DjQy0EF0AO/VbU/9pKdMHrHt
DFkcqsPJ0+NQcZY1YRRJxo6XAfjKxx6V8nsZTM8aIcd4nsL+pm9g0pAsuExYztR6
snnH1/Kdoc0vEhbByFmYdhfIx1LzB5PjCiJAj5QN603JWqqaq60DbzvO+pXX4WqX
yQW2EXy1hqe132AvOlsm/5fjW4RrS7SqltrVl96tqYjfGzuXV7gHrL67kEBtA8jp
NRK3/XXSDiniINmKGJzuiMtgdLXhQwBi8r5ZdfSE0d41T8T9kDF8e+7WK1MGUyI9
5fwSMHKQNZgjFhmJDf7vMilmU9kJqLiaAK7t0q6qPWu4zVe/Sp3Fd51/uz6KkohU
mRaGV2T6U4lkRcM1yr+COMeVq7eixQwkGXbXNBSpIudmmh8aSVtUp92sTQL2JXwV
NBIMAm4Rn7DcehoEUrSraofaHMhRzpqZ/yguHh/52auNEf6Twptm5GSlh7iemD5Z
yXzTigUKEoMVOw4JooKqiA9womYQzQjTcauNqEforhmOxKJ0wHg9miQvGzFVyYoa
PoiLvCdSV89eIPXmUSS6Jr1ziWUFU0H1mkE8DYniFTSlsac2api6ZQ1DgbxfnJ4b
VQYbRdnAQhIK
MIIFLTCCAxWgAwIBAgIQUbu/e7e6+cH/vtNu/SgWozANBgkqhkiG9w0BAQsFADAa
MRgwFgYDVQQDEw9jYWFuZHNlcnZlci5jb20wHhcNMjAxMDIzMTQzOTEyWhcNMzAx
MDIxMTQzOTEyWjAaMRgwFgYDVQQDEw9jYWFuZHNlcnZlci5jb20wggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDPQpPt45s1m1g5qhGnSWPNmeI2KUCHzj8S
dgZcpzwW0BfMOXvZzvuPkECsFIwLiNduzKVtT+RvW2XxBoZxIcMgZINn7FMnZXXN
ifSE6qCJOnRgV/NBo/OUzedk5t8SGXHmsrcIOX1XFdRMxNde7z+wLSjBI5DlpWKy
sDBauZqxDncaMEDvHA4XNfywzMuywuNrlb0bK9Ro5k0oehnETqefqJAUxtMbp0o0
Fc4yaDquwbbXl2seDDyv+m8kutCSi6DkJh97EHuS9zsxVk7lQXhxu9EDCG5okJQI
pvG5MU4fJ7vS/9qdgghoAHAHodS+rgPuV14Hh9VznkDeKHNAbWX/YCZWdONzglDs
S0h2tpHx2FTFBFz1UQe/Mo6tXUVPVAh0QGqdR5QzdpOU/qwbw14tCX8d1IgWhBzK
WMmjizIL/IJkGVOTGfKdiLPFgbmsJuYdjWRhTIqYtDK621kvefjO1R5GUTurVbUi
jc+i8k8C9QvHPHocvMRBaZRhDl+IaAJNK514yWT6+Wo5aR56NS4LuIGmc6sGdoaH
5yc1Me7BVlcoq1sV0v1UFMfbI0C4Jc+EF4vcQnIC/a804OihckR/ms7ptdu24sOO
czSzjGCySh+ezUqzizTL5fzAcvyUGW43Z4rmFWBO2ZTlLUmFtdG5Iwy7ohTl4Htv
6bomdKoMcQIDAQABo28wbTAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0lBAgwBgYEVR0l
ADAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ5YOLXDLcA307QvPQfG5PHLiQb
HzAaBgNVHREEEzARgg9jYWFuZHNlcnZlci5jb20wDQYJKoZIhvcNAQELBQADggIB
AEPcIfCnl/hGEAJCjkn9LxLKFsrDgTg6kgiovYRbPc5e0i//Pw4Mm1Brc0wS0zpE
V4BM60CwYBMmsZBhB3q15wQHmf/Ok9Nke2FhXhvJ4h/yKpjTl0Gb7qxrHBYshdrb
I3oJzQojmdB3RHgzGfewzKf9elWf/AVAqvGI/veMdPyjTOFpgMA944DxhQ485vyZ
RkxHlOzXHByaFgdCY566297jUu1id27LC/jIJUwOSNxIDvV6AYRiRmbvczhszRk4
NFSUpne6sJKNMdsoACkJ+FqoTeK69S+ZIK3WHyQwHSQSRDJFh7882GtCECnS9fUM
gUdw9zE1AH5CX0ptEil/77sshgl91YzsmhTHz9Rf9yeLqHvm79UwlTMr2AaaQDIh
Uu/ga+mfvkER1soZV55noUuGn/Ejc+MIbkQwGeOjPqAbs5YWgQCBnYiUqut0Slaw
ZR2cLY7jT0rxPy3Rah9R/XI8jSKJBq8asnk6aBOdqkpOg4tG5WDwtAq00+GWBbZL
RYM21tFeaz2QanbYOEdE8c+iGvy18U2WZduVY9GHNf+d2ioxyqcyhaC3b/4cMJH4
WmcYwOMRIgeOYBZUgjeeZrTKSvdmG1yVi+cArqBB3ZDOHdZcjCTbXteVtzk316Zg
JURtHxcy6j1kPLQFQy2hyhU5k3oecnfCL4PvOdsNsleF
-----END CERTIFICATE-----

View file

@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
ivmCRm6O5LDcuY4Xqu585k2gUxZUynQ=
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
+EnIphuNxcq0dG6zKgA+enlvrWWC4w==
-----END PRIVATE KEY-----

View file

@ -1,28 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIEtDCCApwCAQIwDQYJKoZIhvcNAQELBQAwGjEYMBYGA1UEAwwPY2FhbmRzZXJ2
ZXIuY29tMB4XDTIwMDYyNTA4MjcxMFoXDTMwMDYyMzA4MjcxMFowJjEkMCIGA1UE
AwwbUHJvbWV0aGV1c1JlbW90ZVdyaXRlQ2xpZW50MIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEApZhmjb/xDoD3CjUZT+vU2CABhfJJh7Xc+gSL8ZHKeyJN
Yoco2c0RuPq1ppb3s79x5Zzhm5iW6M6df2WmhLFi04qBOz82lWkA8Vn4/l0ywTD6
8syBTQPN3KS/cxddF4l8GQkQQTYN800/NLeMLIsVdp4C33IH0G1dHFHzcN5fGnFJ
iRz5hPVglDxz8KB6Z2fMURX8VaQ+VB7Nq0OLhNGWCQP4lqMvsaPTYrJnvsc58c0P
YCLvrKrT8E7kMYpoOMCZ4CNaWKcY9jO10yLhNSte2CSmDR9AuoEWKUUsx3k2f5zy
Z/2t3S4Zk8oGU2MgJj/C/WfS2HJI85cKKtael1Eeiof5rof10vnnc3sl0dWzZQbu
n6SsGHaFL2FTKD77OEOARwhdmOJ/1PvVCRYAPrebKuS/5JqhQ9P0p0f/RW5QgzJS
fLWRBrZ9rzseu8szbWecL19gvauk7rgQANa6qcKDF/lSXRPhmWDge6jdmKL3Q9sc
3+ym+DuEOcxmSEmv/AypgN674VMp/8UI+FTOKcG7czK5qvXFte2SPPrw6wqm1NDf
p9lQF9jqSMz9vyAay7xeobEo8qoAU1oA/91uboKd8lvHZ4Nc5EqNq7/bIjNyoKOb
srx3M0byg/dd624SuK28l5+TXmIYsJBZWtUmV56vPxu0DH7GHskQErxuJk+4+3EC
AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAztRhRhVMrN8fy8TgQKrXtU7kFLDuQMHH
p2BSJdBEIw40amqQiYsVuE7bBNYqC6RPKT2LJqjlcYwSS7PQwp+aKhhfhvR0sz3C
ibUoW4VPTaHEW42A2Pt3uELPEHapYZ9ltR/MtImMjPqJhZgEXPJEqdtAETHqhg57
MiU+WZ/7e3ORyasoSiCHfF/PmJattW3TLfeCSirTiSu3q2kp73oDqR5B5ayq/7r2
xTvIkHBAjac0oGnj/woXW1XuVpjsQzr/I5OHCwSw2yMYpS/h4cIZo8FnUdwiLjjz
vfQpVFMD/7wH+MJLJdvD55x4+5Wn0R1YBJUTc7h8zhLm4jzBVHrijHiWl8wIHbz1
0rApspHFzN5okFc12VVyLpSDWkHFs5kPql7AedcRMRm+tLEFhJ1zPXbcxhLYHc9B
ZXkBONJCcQzXVdavAs3/7mTuj2XjcyKvBA8oI7yVei58ujwz5Y+f1k8/uama5x6t
4oBKNvTIUAxwQV5iWMH77n5jdh/BdiIfzFE6cF17pRyRANZHxW5WRa2N2+k1UoHy
GzZ8g+jO3zqbQZ5chVroOL71B/2Jpmy11LJX7hMWkTNnjO/LhIcjkhTkUhSXA4xc
V6Cmo5n1xG0WqvmiIzi0pj2/acXE4JtO0+EG0yBn80s8Jwd8nUBPGxwbOaECt66g
4cVxiztnrM8=
MIIFIzCCAwugAwIBAgIQUbu/e7e6+cH/vtNu/SgWpDANBgkqhkiG9w0BAQsFADAa
MRgwFgYDVQQDEw9jYWFuZHNlcnZlci5jb20wHhcNMjAxMDIzMTQzOTEyWhcNMzAx
MDIxMTQzOTEyWjAmMSQwIgYDVQQDExtQcm9tZXRoZXVzUmVtb3RlV3JpdGVDbGll
bnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC681wRUf2+y8GNOzeL
FQVv7C88rLwuZ7d1OdizPX4z2FLN4kR+De8rLybiBe/R8iMKYG9u8LMsvh6NPIzD
+1S6csdEwbMGza9z/jUTylzk6/62q/AHUIs9vHh+klivpI+zNIx6BTnMDGMy5Tbz
FFMU/tV6gUaNHaqxA5lpwR22erlP+0HOb3k3Vi5vhSE24KJa7lq+j4HO+BmmdR8h
NQEdsKjeGvVZTEp+Hg8aGtSsc9T8bcPt4gFBET+mmIi7yxSl/ehfY3XGvxrUuEWp
LkTqeVdo3yu6jw0nG03TH3aoEvOs+7qEZ8yRrusVG/aRO8CixanDxFGkH6IcAOAp
iWv7xTx2a/8r7rkqfZWUhg5Na5YJpuT1T/P30zdD3xE6/A/Bu2O6coRfA5L9+CtU
ufOOsAM/xkk19feDpoq8Cu8gwcfh/3tLyZkjNrR3BnQb7bRvQXpKVO+jxV7iHrib
C+ss1UZbdkh6DbAAJOprS43PHmG0Otcn1xEqLF3wMt4dJPCInCtd4JxRWwxbHmd3
St30it3A8SsSRQsmFiQyYLFdrbZQKbvJQmZ0v1jOHAluKEzi+nU5sNl7Dpes+Q88
u8bvH57A8gCZUFuqcnt1WCdPASAeyKqRNbp/NSGys5LrcXwZDVYuaKFwKpDxDIkC
3BZNLK0+FVmJnAfNNyyAQK7h1QIDAQABo1kwVzAOBgNVHQ8BAf8EBAMCBaAwDwYD
VR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMCYGA1UdEQQfMB2CG1Byb21ldGhl
dXNSZW1vdGVXcml0ZUNsaWVudDANBgkqhkiG9w0BAQsFAAOCAgEAlFEwvuHzWSUk
Oiy7PYPGaSX90hXaoipTZzKS1HSsbgRVpkGNRjRTzR7baGD6qkq3V9qNa4ocBsfm
5u/2gMdrDftkBc+ksW/lLOIjOOVtAOG9TbIVlTrsxA3AG4c5XxjBkWyMbZrdCALE
OKXAOy9g4s9aek+vBEUorlRIYlGD+DLMDvbcVOHd1yB64pOTrp0VBc9bcReZnkvB
1rQ82rDbZtze+atBuPX+fSxrG2FdGDEcNrGVyccKCn5n5kN+G6hUCTI30KLhX4AU
gXGhXwAAbmj9QMCCWxadXQOtD2pshjXa7RGtgJcvDG8gQ1odrAmxAFW2A/ubPpDe
dvLubI7ftkDs5eo8Qgiouyyf3TdqWpgtXfA8NuzS7HhkWG5ECMvhrnoxEnvSCM85
1XzQbgu/Q/v1H5/IrH7B2qb+KqXUAPd3EksFzj5+t0xXMetbpEPIRfXA+sI3kR3M
t1bJINllkndrsTCtnHIZbActFCkcbh042G1V7VCCTMdUfw8I3eojn7+UlcMHNRTt
E7CG/nV7UifpJsGLQHIuacXLx5rXxYnmH59oUVLK8GED06gjt6ZlzulPraYD4iwo
Pc2KGhB1MtOiEXDnlFkeNfU2dCFaNEM9LdigfXv1pZ3nYsO2wniQAD1J6hagGDd4
6C/g7gUQaogoT+FgVuI2Ff9+CQsrv4Y=
-----END CERTIFICATE-----

View file

@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQClmGaNv/EOgPcK
NRlP69TYIAGF8kmHtdz6BIvxkcp7Ik1ihyjZzRG4+rWmlvezv3HlnOGbmJbozp1/
ZaaEsWLTioE7PzaVaQDxWfj+XTLBMPryzIFNA83cpL9zF10XiXwZCRBBNg3zTT80
t4wsixV2ngLfcgfQbV0cUfNw3l8acUmJHPmE9WCUPHPwoHpnZ8xRFfxVpD5UHs2r
Q4uE0ZYJA/iWoy+xo9Nisme+xznxzQ9gIu+sqtPwTuQximg4wJngI1pYpxj2M7XT
IuE1K17YJKYNH0C6gRYpRSzHeTZ/nPJn/a3dLhmTygZTYyAmP8L9Z9LYckjzlwoq
1p6XUR6Kh/muh/XS+edzeyXR1bNlBu6fpKwYdoUvYVMoPvs4Q4BHCF2Y4n/U+9UJ
FgA+t5sq5L/kmqFD0/SnR/9FblCDMlJ8tZEGtn2vOx67yzNtZ5wvX2C9q6TuuBAA
1rqpwoMX+VJdE+GZYOB7qN2YovdD2xzf7Kb4O4Q5zGZISa/8DKmA3rvhUyn/xQj4
VM4pwbtzMrmq9cW17ZI8+vDrCqbU0N+n2VAX2OpIzP2/IBrLvF6hsSjyqgBTWgD/
3W5ugp3yW8dng1zkSo2rv9siM3Kgo5uyvHczRvKD913rbhK4rbyXn5NeYhiwkFla
1SZXnq8/G7QMfsYeyRASvG4mT7j7cQIDAQABAoICAQCbl4i0o6bR4+c61g2EhKgm
slv8CV2BgCWzXVZIkp3X+LERZMHDc+W1EwxfDPaNE9Lm1fM9ibAx6wEdVNuTTkD3
Vup6Srj0xga2v70u807fKzB/thu/y1VAfiPM9iToGqxZsaRuQWX2N5yt4dB5ge2W
2H0GilRBSKD2HSJJ6QcfB1b62BizDwPCBNNDQuYABw15GtlPdtWBoLfKtdp/35XD
vtFyaL5FgRL7Z3oHTZZqViyePfVJHfGpl9bdnZizynRKn60iI09W9dtgGSPWG3ww
Rq8nIThmhSfXe0HJ42CLo2I4x6j3a3to26f57eelSL/j7gu0iB13k3FgMuwsbXHt
YNuBFegrNx44j7ZePqbeZZW9ZNJGHrPdx7W1M5kZVGXjclR77BEKeonB8rGh0t+5
irYcfDdT7F9Qr0CqQG6N6ksDd2UxQWzAoiER3SQWxwqplKNa6LlrnwZCf8oVnI3Y
2OYo9JV1LloVm1NkuNf8E0XQvEP8GEs/Er5i0FG2rOkev79aKWd/021glmNA7XVO
C39gd7ViytR6WvVGoy8ovKdDKUY/7+De9ufpdRSbCN67+Q3P178KxE5Jc4LltTpJ
wMydnKrlDbwBcnWwQoOBnAT6+S4T315dBWL01vXymXi4YH7DMuP4+DUIbdFE5TpI
B+uXQBxWo9vRXAVSiNusAQKCAQEA2BJ5AUtbxoNfGa3Ax68+J3FG2oCc2rzpXw2k
wPso2LCrOLCU05lKF8CoseQMbX57t3tjNwMcTfydydcX+qdOH0MRsgsVMA/3Mfpj
bDZEwYF74QwEksqvcm3yhAuL47fzSDVbe8xLULtiZWbnKeoh8RYCbT/oiwVQhxYK
WufW4gVfvMIJmNFFMGa5b//Kv1xR/ty0aQbrIh4Z4fv+3OK0RAdxbWfXtmtSIaMU
KL6kxQhn/FQQdkaVzOWlwsvcjiax7Pfo0BxHFpB/x/pEQcJEJ6KYJtopySNyeUoC
CWs3Yg0WVf2jNTIbfFVZ4NMFTBboQI5wHxN5vYppvbWCWzmqkQKCAQEAxDIQ8al4
tWr7a6ArG9BdIfCXnOogL08xg9dKbnvckz+XUgZn21Q8TXNFCtIedxrDCepFEJ8k
rDHNjNGB8vi+b/kAsUnb6an7uL+wH4G2HjhdgZYepMdOD9q0qFKV2SAL+kLwNH0Q
hM14fmbv0K9Sm567f6polI2MMk7yWX1s76Qjn55KVYIBiLa/42sSb8Zf93OESQXj
g2kB1Tf/pDezgzU4myUvAYqmhFiyHNvbR66sWYmbdnjRRJlA5zUaQ9Io+yKubefy
nfAwCl+v/PbtYKHLukBy8LMnhwIAQCIQoEo/7/9+sA0fEUe1FGE2YABxHweD5Y6l
vhxZlRbI9n3y4QKCAQBysAtudnN2QRDfbmyfERNqmCPFovKe4Br3CyTiEe4yZkPb
yU6Vqg274dUo5yT5kWNVlrao4ovJkUandfYSY2+CBHWGDX/njPHmo0LWk0+XboU0
hM6Ao/jQQi+xivdrnZ4SO9AdO+jWJ0ApFp+ojdAKSWZsWrmx4NZHfZltexWBztxs
MoophRq2gC/5lMonHHehUcCo5rUz3MpcOweicurAGTtJmQ7Uks57cDYpElgfBUE8
m9pJDVpB8bs0VETzZvKWF1iJ7hiFj5ljqiFEzjqi1xjvtmjrjFccrf26xiAVeWDb
r89LUxdnvV4BicCMDLSmX3R/6jR6ONe7jHZuuYMhAoIBAG11DTT1+q0kMX67DjHn
Tn5H7x4RFMGwKgzHCPSYz9eqy65senbICRigra06ytpiKNwYQk3iq6AR7P6aSCiZ
FA3+Wp+OeE1lk1VgRE9fm45CnhBVA2Wk9+0qdE3QPV+0XFpUDBUMjTG6PHYw0ayY
k7rUlQDFvrDaQ5QxrU22BxeveFxuAESyUk7GvkmPi+qmPxYb8XqX+XVwGSCurEYe
+VzDTYBo/0+Z3grKPRySoETes7MEbaJsBzyBT89uNegOkOSDVdNla1soDHVNKy8z
R/34ZmPT3wxgtzXALQmat7HlmsQ3w6NOvr1yRxlGnwJyXKoWFET3D4r/4A6odpfm
bqECggEALU84T5twIu/wGeFYhzxR5uM3yR4nAjl3sLFVvPBXmCo/+3K+kgwAsMb5
Q/HKorXhdLj4FbQip8wUPmf8SRHblVnTQU3tGZeY35tNiYfC9WJotlG1PMvVTf9Y
zFE1AbgkbMKBJJwNr4y17tgm4E/nidLIXfzg6X28E7bnXN1F7cQfffO6YAwx0S0p
rCD+5fpAjhjIMOP1YQtumjNaplmhVKS1aENzqHqNmg7UVYwgt8T+D1rxUvnCSn1t
xb1lXaTkG4OEnqBGnPwRvGw+Ay5RBBouUWMyIAxyzgR6SOCusVGSg8zkIklhYOQs
F9yDvBLkMMkn2A8Icl2mWmHnlyW/8g==
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
tcITe2zuaMHDct3WRVyoiG5etXXmlQUj
-----END PRIVATE KEY-----

View file

@ -28,8 +28,8 @@ import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"github.com/prometheus-operator/prometheus-operator/pkg/k8sutil"
"github.com/pkg/errors"
"github.com/prometheus-operator/prometheus-operator/pkg/k8sutil"
)
func PathToOSFile(relativPath string) (*os.File, error) {

View file

@ -22,6 +22,7 @@ import (
"reflect"
"sort"
"strings"
"testing"
"time"
v1 "k8s.io/api/core/v1"
@ -514,7 +515,7 @@ func (f *Framework) GetHealthyTargets(ns, svcName string) ([]*Target, error) {
case healthGood:
healthyTargets = append(healthyTargets, target)
case healthBad:
return nil, errors.New(target.LastError)
return nil, errors.Errorf("target %q: %s", target.ScrapeURL, target.LastError)
}
}
@ -549,6 +550,24 @@ func (f *Framework) CheckPrometheusFiringAlert(ns, svcName, alertName string) (b
return alertstate == "firing", nil
}
// PrintPrometheusLogs prints the logs for each Prometheus replica.
func (f *Framework) PrintPrometheusLogs(t *testing.T, p *monitoringv1.Prometheus) {
if p == nil {
return
}
replicas := int(*p.Spec.Replicas)
for i := 0; i < replicas; i++ {
l, err := GetLogs(f.KubeClient, p.Namespace, fmt.Sprintf("prometheus-%s-%d", p.Name, i), "prometheus")
if err != nil {
t.Logf("failed to retrieve logs for replica[%d]: %v", i, err)
continue
}
t.Logf("Prometheus #%d replica logs:", i)
t.Logf("%s", l)
}
}
func (f *Framework) WaitForPrometheusFiringAlert(ns, svcName, alertName string) error {
var loopError error