Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
135 lines (99 sloc) 3.8 KB
syntax = "proto3";
package supergloo.solo.io;
option go_package = "github.com/solo-io/supergloo/pkg/api/v1";
import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;
import "github.com/solo-io/solo-kit/api/v1/metadata.proto";
import "github.com/solo-io/solo-kit/api/v1/status.proto";
import "github.com/solo-io/solo-kit/api/v1/ref.proto";
import "github.com/solo-io/solo-kit/api/v1/solo-kit.proto";
/*
Installs represent a desired installation of a supported mesh.
Supergloo watches for installs and synchronizes the managed installations
with the desired configuration in the install object.
Updating the configuration of an install object will cause supergloo to
modify the corresponding mesh.
*/
message Install {
option (core.solo.io.resource).short_name = "i";
option (core.solo.io.resource).plural_name = "installs";
// Status indicates the validation status of this resource.
// Status is read-only by clients, and set by supergloo during validation
core.solo.io.Status status = 100 [(gogoproto.nullable) = false, (gogoproto.moretags) = "testdiff:\"ignore\""];
// Metadata contains the object metadata for this resource
core.solo.io.Metadata metadata = 101 [(gogoproto.nullable) = false];
// disables this install
// setting this to true will cause supergloo to
// not to install this mesh, or uninstall an active install
bool disabled = 1;
// The type of object the install handles
// Currently support types are mesh, and ingress
oneof install_type {
// service mesh
MeshInstall mesh = 2;
// ingress
MeshIngressInstall ingress = 3;
}
// which namespace to install to
string installation_namespace = 4;
// gzipped inline string containing the applied manifest
// read-only, set by the server after successful installation.
// TODO (ilackarms): make sure this is not too large for etcd (value size limit 1.5mb)
string installed_manifest = 5;
}
// Installation options for Istio
message IstioInstall {
// which version of the istio helm chart to install
// ignored if using custom helm chart
string istio_version = 2;
// enable auto injection of pods
bool enable_auto_inject = 3;
// enable mutual tls between pods
bool enable_mtls = 4;
// optional. set to use a custom root ca
// to issue certificates for mtls
// ignored if mtls is disabled
core.solo.io.ResourceRef custom_root_cert = 9;
// install grafana with istio
bool install_grafana = 6;
// install prometheus with istio
bool install_prometheus = 7;
// install jaeger with istio
bool install_jaeger = 8;
}
/*
Generic container for mesh installs handled by supergloo
Holds all configuration shared between different mesh types
*/
message MeshInstall {
// The type of mesh to install
// currently only istio is supported
oneof install_type {
// install istio
IstioInstall istio_mesh = 2;
}
// reference to the Mesh crd that was created from this install
// read-only, set by the server after successful installation.
core.solo.io.ResourceRef installed_mesh = 6;
}
/*
Generic container for ingress installs handled by supergloo
Holds all configuration shared between different ingress types
*/
message MeshIngressInstall {
// The type of mesh to install
// currently only gloo is supported
oneof install_type {
// gloo
GlooInstall gloo = 1;
}
// reference to the Ingress crd that was created from this install
// read-only, set by the server after successful installation.
core.solo.io.ResourceRef installed_ingress = 3;
}
// Installation options for Gloo Ingress
message GlooInstall {
// which version of the gloo helm chart to install
// ignored if using custom helm chart
string gloo_version = 2;
}
You can’t perform that action at this time.