mirror of https://github.com/grafana/grafana
K8s: Move standalone apiserver CLI to enterprise (#93799)
parent
e672796632
commit
87c81825b7
@ -1,60 +0,0 @@ |
|||||||
# grafana apiserver (standalone) |
|
||||||
|
|
||||||
The example-apiserver closely resembles the |
|
||||||
[sample-apiserver](https://github.com/kubernetes/sample-apiserver/tree/master) project in code and thus |
|
||||||
allows the same |
|
||||||
[CLI flags](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/) as kube-apiserver. |
|
||||||
It is currently used for testing our deployment pipelines for aggregated servers. You can optionally omit the |
|
||||||
aggregation path altogether and just run this example apiserver as a standalone process. |
|
||||||
|
|
||||||
## Standalone Mode |
|
||||||
|
|
||||||
### Usage |
|
||||||
|
|
||||||
For setting `--grafana.authn.signing-keys-url`, Grafana must be run with `idForwarding = true` while also ensuring |
|
||||||
you have logged in to the instance at least once. |
|
||||||
|
|
||||||
```shell |
|
||||||
go run ./pkg/cmd/grafana apiserver \ |
|
||||||
--runtime-config=example.grafana.app/v0alpha1=true \ |
|
||||||
--grafana-apiserver-dev-mode \ |
|
||||||
--grafana.authn.signing-keys-url="http://localhost:3000/api/signing-keys/keys" \ |
|
||||||
--verbosity 10 \ |
|
||||||
--secure-port 7443 |
|
||||||
``` |
|
||||||
|
|
||||||
### Verify that all works |
|
||||||
|
|
||||||
In dev mode, the standalone server's loopback kubeconfig is written to `./data/grafana-apiserver/apiserver.kubeconfig`. |
|
||||||
|
|
||||||
```shell |
|
||||||
export KUBECONFIG=./data/grafana-apiserver/apiserver.kubeconfig |
|
||||||
|
|
||||||
kubectl api-resources |
|
||||||
NAME SHORTNAMES APIVERSION NAMESPACED KIND |
|
||||||
dummy example.grafana.app/v0alpha1 true DummyResource |
|
||||||
runtime example.grafana.app/v0alpha1 false RuntimeInfo |
|
||||||
``` |
|
||||||
|
|
||||||
### Observability |
|
||||||
|
|
||||||
Logs, metrics and traces are supported. See `--grafana.log.*`, `--grafana.metrics.*` and `--grafana.tracing.*` flags for details. |
|
||||||
|
|
||||||
```shell |
|
||||||
go run ./pkg/cmd/grafana apiserver \ |
|
||||||
--runtime-config=example.grafana.app/v0alpha1=true \ |
|
||||||
--help |
|
||||||
``` |
|
||||||
|
|
||||||
For example, to enable debug logs, metrics and traces (using [self-instrumentation](../../../../devenv/docker/blocks/self-instrumentation/readme.md)) use the following: |
|
||||||
|
|
||||||
```shell |
|
||||||
go run ./pkg/cmd/grafana apiserver \ |
|
||||||
--runtime-config=example.grafana.app/v0alpha1=true \ |
|
||||||
--secure-port=7443 \ |
|
||||||
--grafana.log.level=debug \ |
|
||||||
--verbosity=10 \ |
|
||||||
--grafana.metrics.enable \ |
|
||||||
--grafana.tracing.jaeger.address=http://localhost:14268/api/traces \ |
|
||||||
--grafana.tracing.sampler-param=1 |
|
||||||
``` |
|
@ -1,157 +0,0 @@ |
|||||||
package apiserver |
|
||||||
|
|
||||||
import ( |
|
||||||
"context" |
|
||||||
"os" |
|
||||||
"sync" |
|
||||||
|
|
||||||
"github.com/spf13/cobra" |
|
||||||
"go.opentelemetry.io/otel" |
|
||||||
"go.opentelemetry.io/otel/trace" |
|
||||||
genericapiserver "k8s.io/apiserver/pkg/server" |
|
||||||
"k8s.io/component-base/cli" |
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/cmd/grafana-server/commands" |
|
||||||
"github.com/grafana/grafana/pkg/infra/log" |
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing" |
|
||||||
"github.com/grafana/grafana/pkg/server" |
|
||||||
"github.com/grafana/grafana/pkg/services/apiserver/standalone" |
|
||||||
) |
|
||||||
|
|
||||||
func newCommandStartStandaloneAPIServer(o *APIServerOptions, stopCh <-chan struct{}) *cobra.Command { |
|
||||||
devAcknowledgementNotice := "The apiserver command is in heavy development. The entire setup is subject to change without notice" |
|
||||||
runtimeConfig := "" |
|
||||||
|
|
||||||
factory, err := server.InitializeAPIServerFactory() |
|
||||||
if err != nil { |
|
||||||
return nil |
|
||||||
} |
|
||||||
o.factory = factory |
|
||||||
|
|
||||||
cmd := &cobra.Command{ |
|
||||||
Use: "apiserver [api group(s)]", |
|
||||||
Short: "Run the grafana apiserver", |
|
||||||
Long: "Run a standalone kubernetes based apiserver that can be aggregated by a root apiserver. " + |
|
||||||
devAcknowledgementNotice, |
|
||||||
Example: "grafana apiserver --runtime-config=example.grafana.app/v0alpha1=true", |
|
||||||
RunE: func(c *cobra.Command, args []string) error { |
|
||||||
if err := log.SetupConsoleLogger("debug"); err != nil { |
|
||||||
return nil |
|
||||||
} |
|
||||||
|
|
||||||
if err := o.Validate(); err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
runtime, err := standalone.ReadRuntimeConfig(runtimeConfig) |
|
||||||
if err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
apis, err := o.factory.GetEnabled(runtime) |
|
||||||
if err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
// Currently TracingOptions.ApplyTo, which will configure/initialize tracing,
|
|
||||||
// happens after loadAPIGroupBuilders. Hack to workaround this for now to allow
|
|
||||||
// the tracer to be initialized at a later stage, when tracer is available.
|
|
||||||
// TODO: Fix so that TracingOptions.ApplyTo happens before or during loadAPIGroupBuilders.
|
|
||||||
tracer := newLateInitializedTracingService() |
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(c.Context()) |
|
||||||
go func() { |
|
||||||
<-stopCh |
|
||||||
cancel() |
|
||||||
}() |
|
||||||
|
|
||||||
// Load each group from the args
|
|
||||||
if err := o.loadAPIGroupBuilders(ctx, tracer, apis); err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
// Finish the config (a noop for now)
|
|
||||||
if err := o.Complete(); err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
// o.Config(tracer) definitely needs to happen before we override the tracer below
|
|
||||||
// using tracer.InitTracer with the real tracer
|
|
||||||
config, err := o.Config(tracer) |
|
||||||
if err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
if o.Options.TracingOptions.TracingService != nil { |
|
||||||
tracer.InitTracer(o.Options.TracingOptions.TracingService) |
|
||||||
} |
|
||||||
|
|
||||||
defer o.factory.Shutdown() |
|
||||||
|
|
||||||
if err := o.RunAPIServer(ctx, config); err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
return nil |
|
||||||
}, |
|
||||||
} |
|
||||||
|
|
||||||
cmd.Flags().StringVar(&runtimeConfig, "runtime-config", "", "A set of key=value pairs that enable or disable built-in APIs.") |
|
||||||
|
|
||||||
o.AddFlags(cmd.Flags()) |
|
||||||
|
|
||||||
return cmd |
|
||||||
} |
|
||||||
|
|
||||||
func RunCLI(opts commands.ServerOptions) int { |
|
||||||
stopCh := genericapiserver.SetupSignalHandler() |
|
||||||
|
|
||||||
commands.SetBuildInfo(opts) |
|
||||||
|
|
||||||
options := newAPIServerOptions(os.Stdout, os.Stderr) |
|
||||||
cmd := newCommandStartStandaloneAPIServer(options, stopCh) |
|
||||||
|
|
||||||
return cli.Run(cmd) |
|
||||||
} |
|
||||||
|
|
||||||
type lateInitializedTracingProvider struct { |
|
||||||
trace.TracerProvider |
|
||||||
tracer *lateInitializedTracingService |
|
||||||
} |
|
||||||
|
|
||||||
func (tp lateInitializedTracingProvider) Tracer(name string, options ...trace.TracerOption) trace.Tracer { |
|
||||||
return tp.tracer.getTracer() |
|
||||||
} |
|
||||||
|
|
||||||
type lateInitializedTracingService struct { |
|
||||||
tracing.Tracer |
|
||||||
mutex sync.RWMutex |
|
||||||
} |
|
||||||
|
|
||||||
func newLateInitializedTracingService() *lateInitializedTracingService { |
|
||||||
ts := &lateInitializedTracingService{ |
|
||||||
Tracer: tracing.NewNoopTracerService(), |
|
||||||
} |
|
||||||
|
|
||||||
tp := &lateInitializedTracingProvider{ |
|
||||||
tracer: ts, |
|
||||||
} |
|
||||||
|
|
||||||
otel.SetTracerProvider(tp) |
|
||||||
|
|
||||||
return ts |
|
||||||
} |
|
||||||
|
|
||||||
func (s *lateInitializedTracingService) getTracer() tracing.Tracer { |
|
||||||
s.mutex.RLock() |
|
||||||
t := s.Tracer |
|
||||||
s.mutex.RUnlock() |
|
||||||
return t |
|
||||||
} |
|
||||||
|
|
||||||
func (s *lateInitializedTracingService) InitTracer(tracer *tracing.TracingService) { |
|
||||||
s.mutex.Lock() |
|
||||||
s.Tracer = tracer |
|
||||||
s.mutex.Unlock() |
|
||||||
} |
|
||||||
|
|
||||||
var _ tracing.Tracer = &lateInitializedTracingService{} |
|
@ -1,15 +0,0 @@ |
|||||||
--- |
|
||||||
apiVersion: apiregistration.k8s.io/v1 |
|
||||||
kind: APIService |
|
||||||
metadata: |
|
||||||
name: v0alpha1.example.grafana.app |
|
||||||
spec: |
|
||||||
version: v0alpha1 |
|
||||||
insecureSkipTLSVerify: true |
|
||||||
group: example.grafana.app |
|
||||||
groupPriorityMinimum: 1000 |
|
||||||
versionPriority: 15 |
|
||||||
service: |
|
||||||
name: example-apiserver |
|
||||||
namespace: grafana |
|
||||||
port: 7443 |
|
@ -1,8 +0,0 @@ |
|||||||
apiVersion: service.grafana.app/v0alpha1 |
|
||||||
kind: ExternalName |
|
||||||
metadata: |
|
||||||
name: example-apiserver |
|
||||||
namespace: grafana |
|
||||||
spec: |
|
||||||
host: localhost |
|
||||||
|
|
@ -1,3 +0,0 @@ |
|||||||
resources: |
|
||||||
- apiservice.yaml |
|
||||||
- externalname.yaml |
|
@ -1,201 +0,0 @@ |
|||||||
package apiserver |
|
||||||
|
|
||||||
import ( |
|
||||||
"context" |
|
||||||
"fmt" |
|
||||||
"io" |
|
||||||
"net" |
|
||||||
"path" |
|
||||||
|
|
||||||
"github.com/grafana/pyroscope-go/godeltaprof/http/pprof" |
|
||||||
"github.com/spf13/pflag" |
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema" |
|
||||||
utilerrors "k8s.io/apimachinery/pkg/util/errors" |
|
||||||
genericapiserver "k8s.io/apiserver/pkg/server" |
|
||||||
"k8s.io/apiserver/pkg/server/mux" |
|
||||||
"k8s.io/client-go/tools/clientcmd" |
|
||||||
netutils "k8s.io/utils/net" |
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log" |
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing" |
|
||||||
grafanaAPIServer "github.com/grafana/grafana/pkg/services/apiserver" |
|
||||||
"github.com/grafana/grafana/pkg/services/apiserver/builder" |
|
||||||
"github.com/grafana/grafana/pkg/services/apiserver/standalone" |
|
||||||
standaloneoptions "github.com/grafana/grafana/pkg/services/apiserver/standalone/options" |
|
||||||
"github.com/grafana/grafana/pkg/services/apiserver/utils" |
|
||||||
"github.com/grafana/grafana/pkg/setting" |
|
||||||
) |
|
||||||
|
|
||||||
const ( |
|
||||||
dataPath = "data/grafana-apiserver" // same as grafana core
|
|
||||||
) |
|
||||||
|
|
||||||
// APIServerOptions contains the state for the apiserver
|
|
||||||
type APIServerOptions struct { |
|
||||||
factory standalone.APIServerFactory |
|
||||||
builders []builder.APIGroupBuilder |
|
||||||
Options *standaloneoptions.Options |
|
||||||
AlternateDNS []string |
|
||||||
logger log.Logger |
|
||||||
|
|
||||||
StdOut io.Writer |
|
||||||
StdErr io.Writer |
|
||||||
} |
|
||||||
|
|
||||||
func newAPIServerOptions(out, errOut io.Writer) *APIServerOptions { |
|
||||||
logger := log.New("grafana-apiserver") |
|
||||||
|
|
||||||
return &APIServerOptions{ |
|
||||||
logger: logger, |
|
||||||
StdOut: out, |
|
||||||
StdErr: errOut, |
|
||||||
Options: standaloneoptions.New(logger, grafanaAPIServer.Codecs.LegacyCodec()), |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
func (o *APIServerOptions) loadAPIGroupBuilders(ctx context.Context, tracer tracing.Tracer, apis []schema.GroupVersion) error { |
|
||||||
o.builders = []builder.APIGroupBuilder{} |
|
||||||
for _, gv := range apis { |
|
||||||
api, err := o.factory.MakeAPIServer(ctx, tracer, gv) |
|
||||||
if err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
o.builders = append(o.builders, api) |
|
||||||
} |
|
||||||
|
|
||||||
if len(o.builders) < 1 { |
|
||||||
return fmt.Errorf("no apis matched ") |
|
||||||
} |
|
||||||
|
|
||||||
// Install schemas
|
|
||||||
for _, b := range o.builders { |
|
||||||
if err := b.InstallSchema(grafanaAPIServer.Scheme); err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
} |
|
||||||
return nil |
|
||||||
} |
|
||||||
|
|
||||||
func (o *APIServerOptions) Config(tracer tracing.Tracer) (*genericapiserver.RecommendedConfig, error) { |
|
||||||
if err := o.Options.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts( |
|
||||||
"localhost", o.AlternateDNS, []net.IP{netutils.ParseIPSloppy("127.0.0.1")}, |
|
||||||
); err != nil { |
|
||||||
return nil, fmt.Errorf("error creating self-signed certificates: %v", err) |
|
||||||
} |
|
||||||
|
|
||||||
o.Options.RecommendedOptions.Authentication.RemoteKubeConfigFileOptional = true |
|
||||||
|
|
||||||
// TODO: determine authorization, currently insecure because Authorization provided by recommended options doesn't work
|
|
||||||
// reason: an aggregated server won't be able to post subjectaccessreviews (Grafana doesn't have this kind)
|
|
||||||
// exact error: the server could not find the requested resource (post subjectaccessreviews.authorization.k8s.io)
|
|
||||||
o.Options.RecommendedOptions.Authorization = nil |
|
||||||
|
|
||||||
o.Options.RecommendedOptions.Admission = nil |
|
||||||
o.Options.RecommendedOptions.Etcd = nil |
|
||||||
|
|
||||||
if o.Options.RecommendedOptions.CoreAPI.CoreAPIKubeconfigPath == "" { |
|
||||||
o.Options.RecommendedOptions.CoreAPI = nil |
|
||||||
} |
|
||||||
|
|
||||||
serverConfig := genericapiserver.NewRecommendedConfig(grafanaAPIServer.Codecs) |
|
||||||
|
|
||||||
if err := o.Options.ApplyTo(serverConfig); err != nil { |
|
||||||
return nil, fmt.Errorf("failed to apply options to server config: %w", err) |
|
||||||
} |
|
||||||
|
|
||||||
if factoryOptions := o.factory.GetOptions(); factoryOptions != nil { |
|
||||||
err := factoryOptions.ApplyTo(serverConfig) |
|
||||||
if err != nil { |
|
||||||
return nil, fmt.Errorf("factory's applyTo func failed: %s", err.Error()) |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
serverConfig.DisabledPostStartHooks = serverConfig.DisabledPostStartHooks.Insert("generic-apiserver-start-informers") |
|
||||||
serverConfig.DisabledPostStartHooks = serverConfig.DisabledPostStartHooks.Insert("priority-and-fairness-config-consumer") |
|
||||||
|
|
||||||
// Add OpenAPI specs for each group+version
|
|
||||||
err := builder.SetupConfig( |
|
||||||
grafanaAPIServer.Scheme, |
|
||||||
serverConfig, |
|
||||||
o.builders, |
|
||||||
setting.BuildStamp, |
|
||||||
setting.BuildVersion, |
|
||||||
setting.BuildCommit, |
|
||||||
setting.BuildBranch, |
|
||||||
o.factory.GetBuildHandlerChainFunc(tracer, o.builders), |
|
||||||
) |
|
||||||
return serverConfig, err |
|
||||||
} |
|
||||||
|
|
||||||
func (o *APIServerOptions) AddFlags(fs *pflag.FlagSet) { |
|
||||||
o.Options.AddFlags(fs) |
|
||||||
|
|
||||||
if factoryOptions := o.factory.GetOptions(); factoryOptions != nil { |
|
||||||
factoryOptions.AddFlags(fs) |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
// Validate validates APIServerOptions
|
|
||||||
func (o *APIServerOptions) Validate() error { |
|
||||||
errors := make([]error, 0) |
|
||||||
|
|
||||||
if factoryOptions := o.factory.GetOptions(); factoryOptions != nil { |
|
||||||
errors = append(errors, factoryOptions.ValidateOptions()...) |
|
||||||
} |
|
||||||
|
|
||||||
if errs := o.Options.Validate(); len(errs) > 0 { |
|
||||||
errors = append(errors, errs...) |
|
||||||
} |
|
||||||
|
|
||||||
return utilerrors.NewAggregate(errors) |
|
||||||
} |
|
||||||
|
|
||||||
// Complete fills in fields required to have valid data
|
|
||||||
func (o *APIServerOptions) Complete() error { |
|
||||||
return nil |
|
||||||
} |
|
||||||
|
|
||||||
func (o *APIServerOptions) RunAPIServer(ctx context.Context, config *genericapiserver.RecommendedConfig) error { |
|
||||||
delegationTarget := genericapiserver.NewEmptyDelegate() |
|
||||||
completedConfig := config.Complete() |
|
||||||
|
|
||||||
server, err := completedConfig.New("standalone-apiserver", delegationTarget) |
|
||||||
if err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
// Install the API Group+version
|
|
||||||
// #TODO figure out how to configure storage type in o.Options.StorageOptions
|
|
||||||
err = builder.InstallAPIs(grafanaAPIServer.Scheme, grafanaAPIServer.Codecs, server, config.RESTOptionsGetter, o.builders, o.Options.StorageOptions, |
|
||||||
o.Options.MetricsOptions.MetricsRegisterer, nil, nil, nil, // no need for server lock in standalone
|
|
||||||
) |
|
||||||
if err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
|
|
||||||
// write the local config to disk
|
|
||||||
if o.Options.ExtraOptions.DevMode { |
|
||||||
if err = clientcmd.WriteToFile( |
|
||||||
utils.FormatKubeConfig(server.LoopbackClientConfig), |
|
||||||
path.Join(dataPath, "apiserver.kubeconfig"), |
|
||||||
); err != nil { |
|
||||||
return err |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if config.EnableProfiling { |
|
||||||
deltaProfiling{}.Install(server.Handler.NonGoRestfulMux) |
|
||||||
} |
|
||||||
|
|
||||||
return server.PrepareRun().RunWithContext(ctx) |
|
||||||
} |
|
||||||
|
|
||||||
// deltaProfiling adds godeltapprof handlers for pprof under /debug/pprof.
|
|
||||||
type deltaProfiling struct{} |
|
||||||
|
|
||||||
// Install register godeltapprof handlers to the given mux.
|
|
||||||
func (d deltaProfiling) Install(c *mux.PathRecorderMux) { |
|
||||||
c.UnlistedHandleFunc("/debug/pprof/delta_heap", pprof.Heap) |
|
||||||
c.UnlistedHandleFunc("/debug/pprof/delta_block", pprof.Block) |
|
||||||
c.UnlistedHandleFunc("/debug/pprof/delta_mutex", pprof.Mutex) |
|
||||||
} |
|
@ -1,6 +0,0 @@ |
|||||||
# apiserver-certificates |
|
||||||
|
|
||||||
These certificates are used for development and testing ONLY. They are generated using the script under |
|
||||||
[hack/make-aggregator-pki.sh](./hack/make-aggregator-pki.sh). |
|
||||||
|
|
||||||
The CA, server and client certificates are each 10 years of expiration. |
|
@ -1,24 +0,0 @@ |
|||||||
-----BEGIN CERTIFICATE----- |
|
||||||
MIID9zCCAt+gAwIBAgIUeRrA5l+Rl4LkHPP1DmMFlYzrhW4wDQYJKoZIhvcNAQEL |
|
||||||
BQAwgYoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApOZXcgU3dlZGVuMRMwEQYDVQQH |
|
||||||
DApTdG9ja2hvbG0gMRAwDgYDVQQKDAdHcmFmYW5hMQwwCgYDVQQLDANSJkQxEDAO |
|
||||||
BgNVBAMMB3Rlc3QtY2ExHzAdBgkqhkiG9w0BCQEWEHRlc3RAZ3JhZmFuYS5hcHAw |
|
||||||
HhcNMjQwODA1MjMxMzUzWhcNMzQwODAzMjMxMzUzWjCBijELMAkGA1UEBhMCVVMx |
|
||||||
EzARBgNVBAgMCk5ldyBTd2VkZW4xEzARBgNVBAcMClN0b2NraG9sbSAxEDAOBgNV |
|
||||||
BAoMB0dyYWZhbmExDDAKBgNVBAsMA1ImRDEQMA4GA1UEAwwHdGVzdC1jYTEfMB0G |
|
||||||
CSqGSIb3DQEJARYQdGVzdEBncmFmYW5hLmFwcDCCASIwDQYJKoZIhvcNAQEBBQAD |
|
||||||
ggEPADCCAQoCggEBANj6qsutYwof0e0zHrp35Dey+kQxi+VTr/sAKlSoyySP4fmQ |
|
||||||
9Qn8mDY4HyJ1oOJFpFAlD0Qp1xGdbvcrlvjoieqmfenW342fza0wqS5K8qkd2rJ7 |
|
||||||
khdAE2mACZTFSjmAa8+1rIRWnR0SaHBmDgdxBfNkET+n+cX+WsDMhmzNvPoPDS/V |
|
||||||
8LaNih/eOUzb/5hamvD8CNLKakes0u/EsdxOsGFWCkpE1mg9yg0YPms5qUAj9pdV |
|
||||||
iPH8B5zA1JoukZCrVGPv6R76fJI1LEohiASNFt9cgs2dhdk6QHzGyqNq3T3Cw8yI |
|
||||||
Cug/Kk9DGqwq9OeXtADa4hhPebj04C4hxk0AT2UCAwEAAaNTMFEwHQYDVR0OBBYE |
|
||||||
FBBn2SXiiItJQsJZ7MTvIn1s1t3jMB8GA1UdIwQYMBaAFBBn2SXiiItJQsJZ7MTv |
|
||||||
In1s1t3jMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABcCcwsg |
|
||||||
jrcNZheAaKXtdcZT01+doQhaOvhZQhY5L+bCnB0wkBXRJzv8ne+KgLx7auFQP8/2 |
|
||||||
OoPgaiA0R+XtImCkyBd+cr4mo2tYVpHt9+B0HaYGzGoXt0dre47ihlgkqoSwmgvG |
|
||||||
9++pfrbQGRd5Xb/j0468sd5uQy1PPhsjCzFZTuxXcaAN13MDNikYjjn5mc5coklu |
|
||||||
hCFH54PgP/PUDXxI0v/QUjNOj7hAdMkqOjzFD9Fze1KjtS3aSZvaaZVrM3x/YS8y |
|
||||||
1IUgyocgoOKCqBOeEict+g/xghFDe7r2Dlgps/hPD1ojijBl83g5i079jW4y9jm+ |
|
||||||
osFOTGnRx2u0CpE= |
|
||||||
-----END CERTIFICATE----- |
|
@ -1,28 +0,0 @@ |
|||||||
-----BEGIN PRIVATE KEY----- |
|
||||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDY+qrLrWMKH9Ht |
|
||||||
Mx66d+Q3svpEMYvlU6/7ACpUqMskj+H5kPUJ/Jg2OB8idaDiRaRQJQ9EKdcRnW73 |
|
||||||
K5b46Inqpn3p1t+Nn82tMKkuSvKpHdqye5IXQBNpgAmUxUo5gGvPtayEVp0dEmhw |
|
||||||
Zg4HcQXzZBE/p/nF/lrAzIZszbz6Dw0v1fC2jYof3jlM2/+YWprw/AjSympHrNLv |
|
||||||
xLHcTrBhVgpKRNZoPcoNGD5rOalAI/aXVYjx/AecwNSaLpGQq1Rj7+ke+nySNSxK |
|
||||||
IYgEjRbfXILNnYXZOkB8xsqjat09wsPMiAroPypPQxqsKvTnl7QA2uIYT3m49OAu |
|
||||||
IcZNAE9lAgMBAAECggEAYUTyNy+J1BqSrd66WkZv6SZTeimp+Mrs+71FvMEUnFXi |
|
||||||
LFJ2/xydEcVT88s+reEheYo7j0egcfWdLrH8UqZQWYB8ts0MV715YzgKx8Vyhizr |
|
||||||
gxLRWZnwed2brfVJwoBXFHzxkzwO398GMckWZfCdhdBoyRwg5UkS3xZw9qq+mmw8 |
|
||||||
hvt88sDzHwnk/9rMY6KLNhWNiCSAxU65AlpktWRGy2e9wAtyzN+WX/iQwsiAyhk2 |
|
||||||
TV2bHQxRE7FT9hg4UBxzWruYRj4jkLKdH4tVqVKLsV7KutAOiYj3hCjYzOac/5QG |
|
||||||
XrTRhN/ewAqJCTOI9K8BVT27l3QxREcq480auDwIawKBgQDzOr6+ILgPdqdGX9Nu |
|
||||||
HoLnNuU6OdFsTJ3qXSp4AGv8ufq47PJmTp3F2ZN9RTDr6Fih7UKhApVvFOy6/Hlr |
|
||||||
vb0MbL9FOe+2ejtnVmNi13AMexW+nmnOs1oSghXYIbt51/n+5bFmzAo6RFDEG0YT |
|
||||||
mtRWMj4mifMI0XH31yRk+Yjp6wKBgQDkXxdG0OmoDwlrlbHjVOpEg7/A0diBHfb9 |
|
||||||
yh4MbaVmd6rGgdNkJYq1qB6ctJcLYpKq1QGgj6FyNDNyY/T4lIxRuSHqC2v1Mjt/ |
|
||||||
TaL1BhMsH2Q6+bT8mlmM4cNNgSVHfISJv2mMuKfEqb+uY0y8UU6/lYmwzC5rH4bs |
|
||||||
TgPNSLmH7wKBgQCk8F9M2y81/UZt6Kmd8T7fwFAt7etgP4yO02LrQY35Mb0eDkBK |
|
||||||
tGE1O9hSiMsmDseb9yLJwNDJJS1rl65XK7G5bT0/mow9+CG0b9axvlqTfBxAyXgC |
|
||||||
3YjlKCXcDPPvKlCzU9u7U/5TiOQkOEKLJOF9GlEfHUkb37wjT1e0yarYxQKBgFNF |
|
||||||
nT40RU8DlKLHJeNH/lhXVh9gJTsHix2Fiqlrfck8T2gsxMEas1aD5A2uB/mdyu9B |
|
||||||
1mMOnIcBI9VNP3E48WWHRSeLXKU+2NUVoRsJSQpos+qRTP5i5c5qMAXd1pMXg1ib |
|
||||||
FEi8uGgMoZlcGgn89+MCCwANo8tp5o/Z7qb3Ire/AoGANmc8BAGgKanJVAfu7gDU |
|
||||||
AgxRg5T0/C6vpWh5k/gFS7AQqgnx8EcRYtuCD4Er5GFRdcyb9AuZccyKzWI5JS89 |
|
||||||
YOmJPrfDd7VzBsrOjwJCXcV6tUUq6yO4Ra8vKlIw7T+mMYZh7xWwGnT8UA+X9F+7 |
|
||||||
yV6kPpraMD/dFbo2TZoNMjc= |
|
||||||
-----END PRIVATE KEY----- |
|
@ -1,27 +0,0 @@ |
|||||||
-----BEGIN CERTIFICATE----- |
|
||||||
MIIEjDCCA3SgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx |
|
||||||
EzARBgNVBAgMCk5ldyBTd2VkZW4xEzARBgNVBAcMClN0b2NraG9sbSAxEDAOBgNV |
|
||||||
BAoMB0dyYWZhbmExDDAKBgNVBAsMA1ImRDEQMA4GA1UEAwwHdGVzdC1jYTEfMB0G |
|
||||||
CSqGSIb3DQEJARYQdGVzdEBncmFmYW5hLmFwcDAeFw0yNDA4MDUyMzEzNTRaFw0z |
|
||||||
NDA4MDMyMzEzNTRaMC8xFDASBgNVBAMMC2RldmVsb3BtZW50MRcwFQYDVQQKDA5z |
|
||||||
eXN0ZW06bWFzdGVyczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMz3 |
|
||||||
SSM62uPCNG7mbdlgE0bYcpT8f1ZFmyaauXzbqdTF0/VxGCh9YVBFnqlAdfAUFasN |
|
||||||
HBLQz63PniOWbzmhXZBkrCF/nozg7PgiXJ7aM5ppJyYulOI3sldH49V8KWzcGiJo |
|
||||||
ZE13kKIlCqnOanErj4RnaxVJvMmWOlt6Zn/ljkDFvwypaOeIX/YO1zuZ95BqGpDh |
|
||||||
u4CXipKeCM0AjXNvKrHCi5QbNEF0FMyvsX+s76wZtZSpB7vbIfj/h5Z4Scfyovmy |
|
||||||
cZeqgL2mDAnosKw8/KYAgkcArMHoScTfdCjWthJQlPybJKgMKOJI9OehuP1a89A9 |
|
||||||
t+T/T8ZT75x0YADw+56WDcsYGECiaixrkpB0aiPBtgDm1i1z7ooqSfAfZa0PEgPT |
|
||||||
L680TK66qXI2GFtNqUkU6+xZEfvuxOdZRXkuIVeQ4UMqaiW9y37ppvKzX4llOD2D |
|
||||||
VP86D0JxCCuJqxlzSAGbxK61c8mdqM1SKAa5O5Kl0KHxVkGk4zHYtrHqWsy6YOIM |
|
||||||
CqLMA2vLAeqYwSEn2eQBkTNdhSulrB6JPNBDPNB9+wX5EOX3w+x9lRxn59kQgKyV |
|
||||||
anf1cm1UYeqjsLPhBjpuwVtHhEAc8uJrSZBM3oKPSYEYxwEo+QG8rcKIpjV9gtCu |
|
||||||
T3e/WBWlDVBm0NwbxtY/rYc5ggPHMtPhFxBDhjJpAgMBAAGjVzBVMBMGA1UdJQQM |
|
||||||
MAoGCCsGAQUFBwMCMB0GA1UdDgQWBBQ+z7tF4/VANXrXgsY0PVQFFo6csjAfBgNV |
|
||||||
HSMEGDAWgBQQZ9kl4oiLSULCWezE7yJ9bNbd4zANBgkqhkiG9w0BAQsFAAOCAQEA |
|
||||||
NagU3hqJr5wEU79202Rj+aqbzWJlz1jvZVR6PHILB0deTtvYk1EXeVgyjwmz7PW3 |
|
||||||
DLYcpwgW3bTdxhejduFNzKazDOZZ2blUlZlHs1PoBb/ipnw4g+ozO+ZyGs05gCu8 |
|
||||||
DrsxUKX7bpVcKGfPNVg8L4xZbanizO1XUiv6PDBBRZhKXSl+KO9+aN2C/yRnYmpV |
|
||||||
9dyuMI9nFoMB0K7rxTxiRCIPIWs8nsGouLa6lg6/I+xTAjV0IqNz0rQ66UWJOr3x |
|
||||||
vLGFdMMaDUSbsNlu18/sCJd+G0rkh24YE6e3I1wGqE9jr4iYsMhkhfp0u4Qojmfp |
|
||||||
3/7IGZYzvVIN/PvSFBBgZw== |
|
||||||
-----END CERTIFICATE----- |
|
@ -1,27 +0,0 @@ |
|||||||
-----BEGIN CERTIFICATE REQUEST----- |
|
||||||
MIIEmjCCAoICAQAwLzEUMBIGA1UEAwwLZGV2ZWxvcG1lbnQxFzAVBgNVBAoMDnN5 |
|
||||||
c3RlbTptYXN0ZXJzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzPdJ |
|
||||||
Izra48I0buZt2WATRthylPx/VkWbJpq5fNup1MXT9XEYKH1hUEWeqUB18BQVqw0c |
|
||||||
EtDPrc+eI5ZvOaFdkGSsIX+ejODs+CJcntozmmknJi6U4jeyV0fj1XwpbNwaImhk |
|
||||||
TXeQoiUKqc5qcSuPhGdrFUm8yZY6W3pmf+WOQMW/DKlo54hf9g7XO5n3kGoakOG7 |
|
||||||
gJeKkp4IzQCNc28qscKLlBs0QXQUzK+xf6zvrBm1lKkHu9sh+P+HlnhJx/Ki+bJx |
|
||||||
l6qAvaYMCeiwrDz8pgCCRwCswehJxN90KNa2ElCU/JskqAwo4kj056G4/Vrz0D23 |
|
||||||
5P9PxlPvnHRgAPD7npYNyxgYQKJqLGuSkHRqI8G2AObWLXPuiipJ8B9lrQ8SA9Mv |
|
||||||
rzRMrrqpcjYYW02pSRTr7FkR++7E51lFeS4hV5DhQypqJb3Lfumm8rNfiWU4PYNU |
|
||||||
/zoPQnEIK4mrGXNIAZvErrVzyZ2ozVIoBrk7kqXQofFWQaTjMdi2sepazLpg4gwK |
|
||||||
oswDa8sB6pjBISfZ5AGRM12FK6WsHok80EM80H37BfkQ5ffD7H2VHGfn2RCArJVq |
|
||||||
d/VybVRh6qOws+EGOm7BW0eEQBzy4mtJkEzego9JgRjHASj5AbytwoimNX2C0K5P |
|
||||||
d79YFaUNUGbQ3BvG1j+thzmCA8cy0+EXEEOGMmkCAwEAAaAmMCQGCSqGSIb3DQEJ |
|
||||||
DjEXMBUwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAB7x |
|
||||||
82Hy942/7nSbz9gJUsJ70sYcre0VRduIMzP1Ytk/ni+1QXDZSmdSrgR0cbTL4VIZ |
|
||||||
zSt5Bp2vxBJqHmGPOXv5oWI+nGrfWzmzBGoGNk4cdNW2ZZCn6Om4L16gLYIlxmm1 |
|
||||||
vgCgnPOYMEi5qtgG6676wSX7gf5+j1gWVDEwNFil8wBUIlA9QRbc2NN0T6479Z4b |
|
||||||
4tUHzUpGuf788OPUqAdxpkH1xZBKW8HEGsk1+NdHgb5krE2ElwvN9qWX5f2DzzwL |
|
||||||
sQf3A2IrO4lrso4RHao4X3V+/DOZCx+FK/oXqzyoS4YNnNy6B0377LgYkuuJsbOo |
|
||||||
IFC7vRhBORvAXEXD/scLEsGKuQzs1vLLiwOp7pBOcGZzxOoqoXc2A6h64qpZKriq |
|
||||||
T1rK6rmrttaXqYUokjbg/ggpcXCC1BGxsoRvGQoN6aQNV27zUh2wpZqpCpVLoN21 |
|
||||||
eCqM9LVoPMCRqn7ItXE9oJhasPlKDO6amHL3CtxjvU2meXoa+nCia8lL4Sb9pSkB |
|
||||||
O5eX4k3H/m4zjrpbqp7UdnidcYn4zfrjRBr65bqNr1sOxwUDWOa0kqaOKrgqwhWn |
|
||||||
ld6zkuekuwzrOK4+Dpf5ybWnVFi8WSz6k9TqQIaeMrzeCBVboufl/ygoIRsTqp7N |
|
||||||
WcKuZdUx8t16hFZ/NgpHRgfZI9pYdzi2vNSZ6WMM |
|
||||||
-----END CERTIFICATE REQUEST----- |
|
@ -1,52 +0,0 @@ |
|||||||
-----BEGIN PRIVATE KEY----- |
|
||||||
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 |
|
||||||
nL1C44m2dHWfIuDuGDs008g/12A53A== |
|
||||||
-----END PRIVATE KEY----- |
|
@ -1,28 +0,0 @@ |
|||||||
-----BEGIN CERTIFICATE----- |
|
||||||
MIIE0jCCA7qgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx |
|
||||||
EzARBgNVBAgMCk5ldyBTd2VkZW4xEzARBgNVBAcMClN0b2NraG9sbSAxEDAOBgNV |
|
||||||
BAoMB0dyYWZhbmExDDAKBgNVBAsMA1ImRDEQMA4GA1UEAwwHdGVzdC1jYTEfMB0G |
|
||||||
CSqGSIb3DQEJARYQdGVzdEBncmFmYW5hLmFwcDAeFw0yNDA4MDUyMzEzNTVaFw0z |
|
||||||
NDA4MDMyMzEzNTVaMCkxEjAQBgNVBAMMCWxvY2FsaG9zdDETMBEGA1UECgwKYWdn |
|
||||||
cmVnYXRlZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMbgGuvCKonn |
|
||||||
9KgW58wqgxiykVbbmT82HmhgOBw5CSg7lVnKQlRzfvUtwZX7UhHXYxOCu0no7RqD |
|
||||||
Y19QiGOx6SQlaXSMxqPL1PpWMQdX6j/I/H1pHMJ8Ynyd956VlhKUOIQBJMVd46Bg |
|
||||||
6IEU4izuJ9uqEuHQrO8lb2eaTXAjsOmtIImxBI7xFsxp42wJyo6ptGetyaNCw7UF |
|
||||||
e8xYmBVSLyfiN/drBx/lcwMiDgzfzf8BsavC96Fa/HujXkybAIyVid2DxKODPT9+ |
|
||||||
7MA1ZY0/Nz3ySKSxIIbfL+1cPihR2GGy1Qwa/GuuJSGAwzy6D/9am5/K3yR927Bk |
|
||||||
OgMUCIlpGlSDY1qFd79o/n9BJ9FJmlTMgIZ6RokaXAU2uaiE6v7YPYGkXoIz3ncc |
|
||||||
SBprVom2h3RmM3qDbmXio1gGsDL/2SI+Hpnq2zhCzL28K+bZA6ukYpCNyyaYF9O6 |
|
||||||
X6qi56zGCw/igTJgaYKMsNMSoX+3eHSFxj5JeF4bWcC4qTqmzvfz0HhvX+jjky/V |
|
||||||
LHCh9ddH1umT/Ss/IxaNarXxXHoUmN33FgFQ+tML4eTvosG6IxUdJ/34qBT+dWk4 |
|
||||||
zNIhStTUNiYPbcSfv8qKLHhMAuZOLsTATLsFQt7bzGZwV8HAuCiqzjg9p4R/dRjE |
|
||||||
OLhQLZfKkYl99Mgli6v/hooEBSORCulVAgMBAAGjgaIwgZ8wPgYDVR0RBDcwNYIo |
|
||||||
djBhbHBoYTEuZXhhbXBsZS5ncmFmYW5hLmFwcC5kZWZhdWx0LnN2Y4IJbG9jYWxo |
|
||||||
b3N0MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQUFvrZ |
|
||||||
B0vSR3B7HcNPCZrZ2H7sFw0wHwYDVR0jBBgwFoAUEGfZJeKIi0lCwlnsxO8ifWzW |
|
||||||
3eMwDQYJKoZIhvcNAQELBQADggEBAGYZYrY+eFmgwFp/ohIcWnekdOiCr7qjnmRo |
|
||||||
LyNU/EbFz0HUV+yTrtoXLjv8S9D9Yc029Dgj2f31Hp7cOGjUfd0t1DgTBChcFgVr |
|
||||||
E5ZbhmKEM0tQiBMI6mHvy6hFT+nc9/yftnndHRUyR4xm6E1dMFqpMyMdYKojRmbn |
|
||||||
F6znVTcjBr4OiDnfTUkqYO8kc3I0qvA5ou4jXAJ9mu3UEbEjwc6C2/Mrr48a42Df |
|
||||||
rHrwqwnM3DC2+SWVocctk1PRZqMFWypJ9U/HbKPbId79YyHNsI0XtxizV2sX5oXD |
|
||||||
1NPPEBeEXZ3Nv/gn4d0h57UoBML9165fRRQSe7CkIl8kZigHGCg= |
|
||||||
-----END CERTIFICATE----- |
|
@ -1,29 +0,0 @@ |
|||||||
-----BEGIN CERTIFICATE REQUEST----- |
|
||||||
MIIE3jCCAsYCAQAwKTESMBAGA1UEAwwJbG9jYWxob3N0MRMwEQYDVQQKDAphZ2dy |
|
||||||
ZWdhdGVkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxuAa68Iqief0 |
|
||||||
qBbnzCqDGLKRVtuZPzYeaGA4HDkJKDuVWcpCVHN+9S3BlftSEddjE4K7SejtGoNj |
|
||||||
X1CIY7HpJCVpdIzGo8vU+lYxB1fqP8j8fWkcwnxifJ33npWWEpQ4hAEkxV3joGDo |
|
||||||
gRTiLO4n26oS4dCs7yVvZ5pNcCOw6a0gibEEjvEWzGnjbAnKjqm0Z63Jo0LDtQV7 |
|
||||||
zFiYFVIvJ+I392sHH+VzAyIODN/N/wGxq8L3oVr8e6NeTJsAjJWJ3YPEo4M9P37s |
|
||||||
wDVljT83PfJIpLEght8v7Vw+KFHYYbLVDBr8a64lIYDDPLoP/1qbn8rfJH3bsGQ6 |
|
||||||
AxQIiWkaVINjWoV3v2j+f0En0UmaVMyAhnpGiRpcBTa5qITq/tg9gaRegjPedxxI |
|
||||||
GmtWibaHdGYzeoNuZeKjWAawMv/ZIj4emerbOELMvbwr5tkDq6RikI3LJpgX07pf |
|
||||||
qqLnrMYLD+KBMmBpgoyw0xKhf7d4dIXGPkl4XhtZwLipOqbO9/PQeG9f6OOTL9Us |
|
||||||
cKH110fW6ZP9Kz8jFo1qtfFcehSY3fcWAVD60wvh5O+iwbojFR0n/fioFP51aTjM |
|
||||||
0iFK1NQ2Jg9txJ+/yooseEwC5k4uxMBMuwVC3tvMZnBXwcC4KKrOOD2nhH91GMQ4 |
|
||||||
uFAtl8qRiX30yCWLq/+GigQFI5EK6VUCAwEAAaBwMG4GCSqGSIb3DQEJDjFhMF8w |
|
||||||
PgYDVR0RBDcwNYIodjBhbHBoYTEuZXhhbXBsZS5ncmFmYW5hLmFwcC5kZWZhdWx0 |
|
||||||
LnN2Y4IJbG9jYWxob3N0MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAN |
|
||||||
BgkqhkiG9w0BAQsFAAOCAgEAGmr6CnGfcm+DapmhQnQLyq0HyCqKD0PKKamofQLb |
|
||||||
YVMiCF/zKDV4+gIs2kMK3uWeZ9r4xDa9nEgBw6U2vi14AI79hmpETCrfvK6hterI |
|
||||||
Znb2TQMYnUY3rt26DFNf3/21/jb/1cn/9z55TaHJGqqlJmvB1LfYJoMN8t6A6xg4 |
|
||||||
J8TYjBuwQQOqFAPRuxmGag44PSC9V5e6gajz56RPyZz2kmdbfPZRNCnqileDWZla |
|
||||||
7pilwP8QAhrJCPP25edc/5hP2WNTEH/GTa5FFmkNMKEHn6+dnBuMu5w1SygKUYWz |
|
||||||
37qE7jntZC/RGVZ//npwsVyaa+NbgJNjhg/EMj+sWb/Eet2ETq7v9FCM0QG3HNUk |
|
||||||
6d6af2YHI3Fo89y5ty1DOydBa5lIxy6gDTwameJYoTem71nPlRtU2b4VFBWZ4xwE |
|
||||||
ac7Xmon+Z7tOHVwcCPp1cTwJ2TNwha0JxsW0C1g3QG59ILU5FMPlqOuDJi41uWql |
|
||||||
Q56O+a6MnK7GfGxBMMf4FSlbV3xjUGxqyGy5KwIcsy+u/3axCWPUcoz3g0pApbGO |
|
||||||
pfsu5Ptr/xMtYjLRXbEcH9Byqx/LrBvD2upwNnlfMtgWIlg/EnZ26Mgardu/NwQq |
|
||||||
3fpYv00VWbvBE/B/5p5zmEpA67COFejiwVTsbeN345Ue2mq59DNg6BZmaxKH3Sbq |
|
||||||
Kz8= |
|
||||||
-----END CERTIFICATE REQUEST----- |
|
@ -1,52 +0,0 @@ |
|||||||
-----BEGIN PRIVATE KEY----- |
|
||||||
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 |
|
||||||
C+DUGz2rplZQ/4PtNOcz7reeAFvu6A== |
|
||||||
-----END PRIVATE KEY----- |
|
Loading…
Reference in new issue