initial core-zero import implementation

This commit is contained in:
Joe Kralicky 2024-09-05 20:27:24 -04:00
parent c011957389
commit b598d139e5
No known key found for this signature in database
GPG key ID: 75C4875F34A9FB79
34 changed files with 3825 additions and 688 deletions

View file

@ -2,18 +2,23 @@
package zero
import (
"bytes"
"compress/gzip"
"context"
"fmt"
"io"
"time"
"google.golang.org/grpc"
"google.golang.org/grpc/keepalive"
"google.golang.org/protobuf/proto"
"github.com/pomerium/pomerium/internal/zero/apierror"
connect_mux "github.com/pomerium/pomerium/internal/zero/connect-mux"
"github.com/pomerium/pomerium/internal/zero/grpcconn"
token_api "github.com/pomerium/pomerium/internal/zero/token"
"github.com/pomerium/pomerium/pkg/fanout"
configpb "github.com/pomerium/pomerium/pkg/grpc/config"
cluster_api "github.com/pomerium/pomerium/pkg/zero/cluster"
connect_api "github.com/pomerium/pomerium/pkg/zero/connect"
)
@ -116,6 +121,30 @@ func (api *API) GetClusterResourceBundles(ctx context.Context) (*cluster_api.Get
)
}
func (api *API) ImportConfig(ctx context.Context, cfg *configpb.Config) (*cluster_api.EmptyResponse, error) {
data, err := proto.Marshal(cfg)
if err != nil {
return nil, err
}
var compressedData bytes.Buffer
w := gzip.NewWriter(&compressedData)
_, err = io.Copy(w, bytes.NewReader(data))
if err != nil {
return nil, err
}
if err := w.Close(); err != nil {
return nil, err
}
return apierror.CheckResponse(api.cluster.ImportConfigurationWithBodyWithResponse(ctx,
"application/octet-stream",
&compressedData,
))
}
func (api *API) GetQuotas(ctx context.Context) (*cluster_api.ConfigQuotas, error) {
return apierror.CheckResponse(api.cluster.GetQuotasWithResponse(ctx))
}
func (api *API) GetTelemetryConn() *grpc.ClientConn {
return api.telemetryConn
}