Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the loki v1beta1 API group +kubebuilder:object:generate=true +groupName=loki.openshift.io
Index ¶
- Variables
- type AuthenticationSpec
- type AuthorizationSpec
- type IngestionLimitSpec
- type LimitsSpec
- type LimitsTemplateSpec
- type LokiComponentSpec
- type LokiStack
- type LokiStackComponentStatus
- type LokiStackConditionReason
- type LokiStackConditionType
- type LokiStackList
- type LokiStackSizeType
- type LokiStackSpec
- type LokiStackStatus
- type LokiTemplateSpec
- type ManagementStateType
- type ModeType
- type OIDCSpec
- type OPASpec
- type ObjectStorageSecretSpec
- type ObjectStorageSpec
- type PermissionType
- type PodStatusMap
- type QueryLimitSpec
- type RoleBindingsSpec
- type RoleSpec
- type Subject
- type SubjectKind
- type TenantSecretSpec
- type TenantsSpec
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "loki.openshift.io", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type AuthenticationSpec ¶
type AuthenticationSpec struct { // TenantName defines the name of the tenant. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant Name" TenantName string `json:"tenantName"` // TenantID defines the id of the tenant. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant ID" TenantID string `json:"tenantId"` // OIDC defines the spec for the OIDC tenant's authentication. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OIDC Configuration" OIDC *OIDCSpec `json:"oidc"` }
AuthenticationSpec defines the oidc configuration per tenant for lokiStack Gateway component.
func (*AuthenticationSpec) DeepCopy ¶
func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec.
func (*AuthenticationSpec) DeepCopyInto ¶
func (in *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthorizationSpec ¶
type AuthorizationSpec struct { // OPA defines the spec for the third-party endpoint for tenant's authorization. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OPA Configuration" OPA *OPASpec `json:"opa"` // Roles defines a set of permissions to interact with a tenant. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Static Roles" Roles []RoleSpec `json:"roles"` // RoleBindings defines configuration to bind a set of roles to a set of subjects. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Static Role Bindings" RoleBindings []RoleBindingsSpec `json:"roleBindings"` }
AuthorizationSpec defines the opa, role bindings and roles configuration per tenant for lokiStack Gateway component.
func (*AuthorizationSpec) DeepCopy ¶
func (in *AuthorizationSpec) DeepCopy() *AuthorizationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthorizationSpec.
func (*AuthorizationSpec) DeepCopyInto ¶
func (in *AuthorizationSpec) DeepCopyInto(out *AuthorizationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngestionLimitSpec ¶
type IngestionLimitSpec struct { // IngestionRate defines the sample size per second. Units MB. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Ingestion Rate (in MB)" IngestionRate int32 `json:"ingestionRate,omitempty"` // IngestionBurstSize defines the local rate-limited sample size per // distributor replica. It should be set to the set at least to the // maximum logs size expected in a single push request. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Ingestion Burst Size (in MB)" IngestionBurstSize int32 `json:"ingestionBurstSize,omitempty"` // MaxLabelNameLength defines the maximum number of characters allowed // for label keys in log streams. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Label Name Length" MaxLabelNameLength int32 `json:"maxLabelNameLength,omitempty"` // MaxLabelValueLength defines the maximum number of characters allowed // for label values in log streams. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Label Value Length" MaxLabelValueLength int32 `json:"maxLabelValueLength,omitempty"` // MaxLabelNamesPerSeries defines the maximum number of label names per series // in each log stream. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Labels Names per Series" MaxLabelNamesPerSeries int32 `json:"maxLabelNamesPerSeries,omitempty"` // MaxGlobalStreamsPerTenant defines the maximum number of active streams // per tenant, across the cluster. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Global Streams per Tenant" MaxGlobalStreamsPerTenant int32 `json:"maxGlobalStreamsPerTenant,omitempty"` // MaxLineSize defines the maximum line size on ingestion path. Units in Bytes. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Line Size" MaxLineSize int32 `json:"maxLineSize,omitempty"` }
IngestionLimitSpec defines the limits applied at the ingestion path.
func (*IngestionLimitSpec) DeepCopy ¶
func (in *IngestionLimitSpec) DeepCopy() *IngestionLimitSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestionLimitSpec.
func (*IngestionLimitSpec) DeepCopyInto ¶
func (in *IngestionLimitSpec) DeepCopyInto(out *IngestionLimitSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LimitsSpec ¶
type LimitsSpec struct { // Global defines the limits applied globally across the cluster. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Global Limits" Global *LimitsTemplateSpec `json:"global,omitempty"` // Tenants defines the limits applied per tenant. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Limits per Tenant" Tenants map[string]LimitsTemplateSpec `json:"tenants,omitempty"` }
LimitsSpec defines the spec for limits applied at ingestion or query path across the cluster or per tenant.
func (*LimitsSpec) DeepCopy ¶
func (in *LimitsSpec) DeepCopy() *LimitsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitsSpec.
func (*LimitsSpec) DeepCopyInto ¶
func (in *LimitsSpec) DeepCopyInto(out *LimitsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LimitsTemplateSpec ¶
type LimitsTemplateSpec struct { // IngestionLimits defines the limits applied on ingested log streams. // // +optional // +kubebuilder:validation:Optional IngestionLimits *IngestionLimitSpec `json:"ingestion,omitempty"` // QueryLimits defines the limit applied on querying log streams. // // +optional // +kubebuilder:validation:Optional QueryLimits *QueryLimitSpec `json:"queries,omitempty"` }
LimitsTemplateSpec defines the limits applied at ingestion or query path.
func (*LimitsTemplateSpec) DeepCopy ¶
func (in *LimitsTemplateSpec) DeepCopy() *LimitsTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitsTemplateSpec.
func (*LimitsTemplateSpec) DeepCopyInto ¶
func (in *LimitsTemplateSpec) DeepCopyInto(out *LimitsTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiComponentSpec ¶
type LokiComponentSpec struct { // Replicas defines the number of replica pods of the component. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:hidden" Replicas int32 `json:"replicas,omitempty"` // NodeSelector defines the labels required by a node to schedule // the component onto it. // // +optional // +kubebuilder:validation:Optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // Tolerations defines the tolerations required by a node to schedule // the component onto it. // // +optional // +kubebuilder:validation:Optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` }
LokiComponentSpec defines the requirements to configure scheduling of each loki component individually.
func (*LokiComponentSpec) DeepCopy ¶
func (in *LokiComponentSpec) DeepCopy() *LokiComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiComponentSpec.
func (*LokiComponentSpec) DeepCopyInto ¶
func (in *LokiComponentSpec) DeepCopyInto(out *LokiComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiStack ¶
type LokiStack struct { Spec LokiStackSpec `json:"spec,omitempty"` Status LokiStackStatus `json:"status,omitempty"` metav1.ObjectMeta `json:"metadata,omitempty"` metav1.TypeMeta `json:",inline"` }
LokiStack is the Schema for the lokistacks API
+operator-sdk:csv:customresourcedefinitions:displayName="LokiStack",resources={{Deployment,v1},{StatefulSet,v1},{ConfigMap,v1},{Ingress,v1},{Service,v1},{ServiceAccount,v1},{PersistentVolumeClaims,v1},{Route,v1},{ServiceMonitor,v1}}
func (*LokiStack) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiStack.
func (*LokiStack) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LokiStack) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LokiStackComponentStatus ¶
type LokiStackComponentStatus struct { // Compactor is a map to the pod status of the compactor pod. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Compactor",order=5 Compactor PodStatusMap `json:"compactor,omitempty"` // Distributor is a map to the per pod status of the distributor deployment // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Distributor",order=1 Distributor PodStatusMap `json:"distributor,omitempty"` // Ingester is a map to the per pod status of the ingester statefulset // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Ingester",order=2 Ingester PodStatusMap `json:"ingester,omitempty"` // Querier is a map to the per pod status of the querier statefulset // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Querier",order=3 Querier PodStatusMap `json:"querier,omitempty"` // QueryFrontend is a map to the per pod status of the query frontend deployment. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Query Frontend",order=4 QueryFrontend PodStatusMap `json:"queryFrontend,omitempty"` // Gateway is a map to the per pod status of the lokistack gateway deployment. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Gateway",order=5 Gateway PodStatusMap `json:"gateway,omitempty"` }
LokiStackComponentStatus defines the map of per pod status per LokiStack component. Each component is represented by a separate map of v1.Phase to a list of pods.
func (*LokiStackComponentStatus) DeepCopy ¶
func (in *LokiStackComponentStatus) DeepCopy() *LokiStackComponentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiStackComponentStatus.
func (*LokiStackComponentStatus) DeepCopyInto ¶
func (in *LokiStackComponentStatus) DeepCopyInto(out *LokiStackComponentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiStackConditionReason ¶
type LokiStackConditionReason string
LokiStackConditionReason defines the type for valid reasons of a Loki deployment conditions.
const ( // ReasonFailedComponents when all/some LokiStack components fail to roll out. ReasonFailedComponents LokiStackConditionReason = "FailedComponents" // ReasonPendingComponents when all/some LokiStack components pending dependencies ReasonPendingComponents LokiStackConditionReason = "PendingComponents" // ReasonReadyComponents when all LokiStack components are ready to serve traffic. ReasonReadyComponents LokiStackConditionReason = "ReadyComponents" // ReasonMissingObjectStorageSecret when the required secret to store logs to object // storage is missing. ReasonMissingObjectStorageSecret LokiStackConditionReason = "MissingObjectStorageSecret" // ReasonInvalidObjectStorageSecret when the format of the secret is invalid. ReasonInvalidObjectStorageSecret LokiStackConditionReason = "InvalidObjectStorageSecret" // ReasonInvalidReplicationConfiguration when the configurated replication factor is not valid // with the select cluster size. ReasonInvalidReplicationConfiguration LokiStackConditionReason = "InvalidReplicationConfiguration" // ReasonMissingGatewayTenantSecret when the required tenant secret // for authentication is missing. ReasonMissingGatewayTenantSecret LokiStackConditionReason = "MissingGatewayTenantSecret" // ReasonInvalidGatewayTenantSecret when the format of the secret is invalid. ReasonInvalidGatewayTenantSecret LokiStackConditionReason = "InvalidGatewayTenantSecret" // ReasonInvalidTenantsConfiguration when the tenant configuration provided is invalid. ReasonInvalidTenantsConfiguration LokiStackConditionReason = "InvalidTenantsConfiguration" // ReasonMissingGatewayOpenShiftBaseDomain when the reconciler cannot lookup the OpenShift DNS base domain. ReasonMissingGatewayOpenShiftBaseDomain LokiStackConditionReason = "MissingGatewayOpenShiftBaseDomain" )
type LokiStackConditionType ¶
type LokiStackConditionType string
LokiStackConditionType deifnes the type of condition types of a Loki deployment.
const ( // ConditionReady defines the condition that all components in the Loki deployment are ready. ConditionReady LokiStackConditionType = "Ready" // ConditionPending defines the conditioin that some or all components are in pending state. ConditionPending LokiStackConditionType = "Pending" // ConditionFailed defines the condition that components in the Loki deployment failed to roll out. ConditionFailed LokiStackConditionType = "Failed" // ConditionDegraded defines the condition that some or all components in the Loki deployment // are degraded or the cluster cannot connect to object storage. ConditionDegraded LokiStackConditionType = "Degraded" )
type LokiStackList ¶
type LokiStackList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []LokiStack `json:"items"` }
LokiStackList contains a list of LokiStack
func (*LokiStackList) DeepCopy ¶
func (in *LokiStackList) DeepCopy() *LokiStackList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiStackList.
func (*LokiStackList) DeepCopyInto ¶
func (in *LokiStackList) DeepCopyInto(out *LokiStackList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LokiStackList) DeepCopyObject ¶
func (in *LokiStackList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LokiStackSizeType ¶
type LokiStackSizeType string
LokiStackSizeType declares the type for loki cluster scale outs.
+kubebuilder:validation:Enum="1x.extra-small";"1x.small";"1x.medium"
const ( // SizeOneXExtraSmall defines the size of a single Loki deployment // with extra small resources/limits requirements and without HA support. // This size is ultimately dedicated for development and demo purposes. // DO NOT USE THIS IN PRODUCTION! // // FIXME: Add clear description of ingestion/query performance expectations. SizeOneXExtraSmall LokiStackSizeType = "1x.extra-small" // SizeOneXSmall defines the size of a single Loki deployment // with small resources/limits requirements and HA support for all // Loki components. This size is dedicated for setup **without** the // requirement for single replication factor and auto-compaction. // // FIXME: Add clear description of ingestion/query performance expectations. SizeOneXSmall LokiStackSizeType = "1x.small" // SizeOneXMedium defines the size of a single Loki deployment // with small resources/limits requirements and HA support for all // Loki components. This size is dedicated for setup **with** the // requirement for single replication factor and auto-compaction. // // FIXME: Add clear description of ingestion/query performance expectations. SizeOneXMedium LokiStackSizeType = "1x.medium" )
type LokiStackSpec ¶
type LokiStackSpec struct { // ManagementState defines if the CR should be managed by the operator or not. // Default is managed. // // +required // +kubebuilder:validation:Required // +kubebuilder:default:=Managed // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:select:Managed","urn:alm:descriptor:com.tectonic.ui:select:Unmanaged"},displayName="Management State" ManagementState ManagementStateType `json:"managementState,omitempty"` // Size defines one of the support Loki deployment scale out sizes. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:select:1x.extra-small","urn:alm:descriptor:com.tectonic.ui:select:1x.small","urn:alm:descriptor:com.tectonic.ui:select:1x.medium"},displayName="LokiStack Size" Size LokiStackSizeType `json:"size"` // Storage defines the spec for the object storage endpoint to store logs. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Object Storage" Storage ObjectStorageSpec `json:"storage"` // Storage class name defines the storage class for ingester/querier PVCs. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:StorageClass",displayName="Storage Class Name" StorageClassName string `json:"storageClassName"` // ReplicationFactor defines the policy for log stream replication. // // +required // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum:=1 // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Replication Factor" ReplicationFactor int32 `json:"replicationFactor"` // Limits defines the limits to be applied to log stream processing. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced",displayName="Rate Limiting" Limits *LimitsSpec `json:"limits,omitempty"` // Template defines the resource/limits/tolerations/nodeselectors per component // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced",displayName="Node Placement" Template *LokiTemplateSpec `json:"template,omitempty"` // Tenants defines the per-tenant authentication and authorization spec for the lokistack-gateway component. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenants Configuration" Tenants *TenantsSpec `json:"tenants,omitempty"` }
LokiStackSpec defines the desired state of LokiStack
func (*LokiStackSpec) DeepCopy ¶
func (in *LokiStackSpec) DeepCopy() *LokiStackSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiStackSpec.
func (*LokiStackSpec) DeepCopyInto ¶
func (in *LokiStackSpec) DeepCopyInto(out *LokiStackSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiStackStatus ¶
type LokiStackStatus struct { // Components provides summary of all Loki pod status grouped // per component. // // +optional // +kubebuilder:validation:Optional Components LokiStackComponentStatus `json:"components,omitempty"` // Conditions of the Loki deployment health. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:io.kubernetes.conditions" Conditions []metav1.Condition `json:"conditions,omitempty"` }
LokiStackStatus defines the observed state of LokiStack
func (*LokiStackStatus) DeepCopy ¶
func (in *LokiStackStatus) DeepCopy() *LokiStackStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiStackStatus.
func (*LokiStackStatus) DeepCopyInto ¶
func (in *LokiStackStatus) DeepCopyInto(out *LokiStackStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiTemplateSpec ¶
type LokiTemplateSpec struct { // Compactor defines the compaction component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Compactor pods" Compactor *LokiComponentSpec `json:"compactor,omitempty"` // Distributor defines the distributor component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Distributor pods" Distributor *LokiComponentSpec `json:"distributor,omitempty"` // Ingester defines the ingester component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingester pods" Ingester *LokiComponentSpec `json:"ingester,omitempty"` // Querier defines the querier component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Querier pods" Querier *LokiComponentSpec `json:"querier,omitempty"` // QueryFrontend defines the query frontend component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Query Frontend pods" QueryFrontend *LokiComponentSpec `json:"queryFrontend,omitempty"` // Gateway defines the lokistack gateway component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Gateway pods" Gateway *LokiComponentSpec `json:"gateway,omitempty"` // IndexGateway defines the index gateway component spec. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Index Gateway pods" IndexGateway *LokiComponentSpec `json:"indexGateway,omitempty"` }
LokiTemplateSpec defines the template of all requirements to configure scheduling of all Loki components to be deployed.
func (*LokiTemplateSpec) DeepCopy ¶
func (in *LokiTemplateSpec) DeepCopy() *LokiTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiTemplateSpec.
func (*LokiTemplateSpec) DeepCopyInto ¶
func (in *LokiTemplateSpec) DeepCopyInto(out *LokiTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagementStateType ¶
type ManagementStateType string
ManagementStateType defines the type for CR management states.
+kubebuilder:validation:Enum=Managed;Unmanaged
const ( // ManagementStateManaged when the LokiStack custom resource should be // reconciled by the operator. ManagementStateManaged ManagementStateType = "Managed" // ManagementStateUnmanaged when the LokiStack custom resource should not be // reconciled by the operator. ManagementStateUnmanaged ManagementStateType = "Unmanaged" )
type ModeType ¶
type ModeType string
ModeType is the authentication/authorization mode in which LokiStack Gateway will be configured.
+kubebuilder:validation:Enum=static;dynamic;openshift-logging
const ( // Static mode asserts the Authorization Spec's Roles and RoleBindings // using an in-process OpenPolicyAgent Rego authorizer. Static ModeType = "static" // Dynamic mode delegates the authorization to a third-party OPA-compatible endpoint. Dynamic ModeType = "dynamic" // OpenshiftLogging mode provides fully automatic OpenShift in-cluster authentication and authorization support. OpenshiftLogging ModeType = "openshift-logging" )
type OIDCSpec ¶
type OIDCSpec struct { // Secret defines the spec for the clientID, clientSecret and issuerCAPath for tenant's authentication. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant Secret" Secret *TenantSecretSpec `json:"secret"` // IssuerURL defines the URL for issuer. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Issuer URL" IssuerURL string `json:"issuerURL"` // RedirectURL defines the URL for redirect. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Redirect URL" RedirectURL string `json:"redirectURL"` GroupClaim string `json:"groupClaim"` UsernameClaim string `json:"usernameClaim"` }
OIDCSpec defines the oidc configuration spec for lokiStack Gateway component.
func (*OIDCSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCSpec.
func (*OIDCSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OPASpec ¶
type OPASpec struct { // URL defines the third-party endpoint for authorization. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OpenPolicyAgent URL" URL string `json:"url"` }
OPASpec defines the opa configuration spec for lokiStack Gateway component.
func (*OPASpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OPASpec.
func (*OPASpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectStorageSecretSpec ¶
type ObjectStorageSecretSpec struct { // Name of a secret in the namespace configured for object storage secrets. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret",displayName="Object Storage Secret" Name string `json:"name"` }
ObjectStorageSecretSpec is a secret reference containing name only, no namespace.
func (*ObjectStorageSecretSpec) DeepCopy ¶
func (in *ObjectStorageSecretSpec) DeepCopy() *ObjectStorageSecretSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageSecretSpec.
func (*ObjectStorageSecretSpec) DeepCopyInto ¶
func (in *ObjectStorageSecretSpec) DeepCopyInto(out *ObjectStorageSecretSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectStorageSpec ¶
type ObjectStorageSpec struct { // Secret for object storage authentication. // Name of a secret in the same namespace as the cluster logging operator. // // +required // +kubebuilder:validation:Required Secret ObjectStorageSecretSpec `json:"secret"` }
ObjectStorageSpec defines the requirements to access the object storage bucket to persist logs by the ingester component.
func (*ObjectStorageSpec) DeepCopy ¶
func (in *ObjectStorageSpec) DeepCopy() *ObjectStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageSpec.
func (*ObjectStorageSpec) DeepCopyInto ¶
func (in *ObjectStorageSpec) DeepCopyInto(out *ObjectStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PermissionType ¶
type PermissionType string
PermissionType is a LokiStack Gateway RBAC permission.
+kubebuilder:validation:Enum=read;write
const ( // Write gives access to write data to a tenant. Write PermissionType = "write" // Read gives access to read data from a tenant. Read PermissionType = "read" )
type PodStatusMap ¶
PodStatusMap defines the type for mapping pod status to pod name.
func (PodStatusMap) DeepCopy ¶
func (in PodStatusMap) DeepCopy() PodStatusMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatusMap.
func (PodStatusMap) DeepCopyInto ¶
func (in PodStatusMap) DeepCopyInto(out *PodStatusMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type QueryLimitSpec ¶
type QueryLimitSpec struct { // MaxEntriesLimitsPerQuery defines the maximum number of log entries // that will be returned for a query. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Entries Limit per Query" MaxEntriesLimitPerQuery int32 `json:"maxEntriesLimitPerQuery,omitempty"` // MaxChunksPerQuery defines the maximum number of chunks // that can be fetched by a single query. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Chunk per Query" MaxChunksPerQuery int32 `json:"maxChunksPerQuery,omitempty"` // MaxQuerySeries defines the the maximum of unique series // that is returned by a metric query. // // + optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Query Series" MaxQuerySeries int32 `json:"maxQuerySeries,omitempty"` }
QueryLimitSpec defines the limits applies at the query path.
func (*QueryLimitSpec) DeepCopy ¶
func (in *QueryLimitSpec) DeepCopy() *QueryLimitSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueryLimitSpec.
func (*QueryLimitSpec) DeepCopyInto ¶
func (in *QueryLimitSpec) DeepCopyInto(out *QueryLimitSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleBindingsSpec ¶
type RoleBindingsSpec struct { Name string `json:"name"` Subjects []Subject `json:"subjects"` Roles []string `json:"roles"` }
RoleBindingsSpec binds a set of roles to a set of subjects.
func (*RoleBindingsSpec) DeepCopy ¶
func (in *RoleBindingsSpec) DeepCopy() *RoleBindingsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingsSpec.
func (*RoleBindingsSpec) DeepCopyInto ¶
func (in *RoleBindingsSpec) DeepCopyInto(out *RoleBindingsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleSpec ¶
type RoleSpec struct { Name string `json:"name"` Resources []string `json:"resources"` Tenants []string `json:"tenants"` Permissions []PermissionType `json:"permissions"` }
RoleSpec describes a set of permissions to interact with a tenant.
func (*RoleSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleSpec.
func (*RoleSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Subject ¶
type Subject struct { Name string `json:"name"` Kind SubjectKind `json:"kind"` }
Subject represents a subject that has been bound to a role.
func (*Subject) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.
func (*Subject) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubjectKind ¶
type SubjectKind string
SubjectKind is a kind of LokiStack Gateway RBAC subject.
+kubebuilder:validation:Enum=user;group
const ( // User represents a subject that is a user. User SubjectKind = "user" // Group represents a subject that is a group. Group SubjectKind = "group" )
type TenantSecretSpec ¶
type TenantSecretSpec struct { // Name of a secret in the namespace configured for tenant secrets. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret",displayName="Tenant Secret Name" Name string `json:"name"` }
TenantSecretSpec is a secret reference containing name only for a secret living in the same namespace as the LokiStack custom resource.
func (*TenantSecretSpec) DeepCopy ¶
func (in *TenantSecretSpec) DeepCopy() *TenantSecretSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantSecretSpec.
func (*TenantSecretSpec) DeepCopyInto ¶
func (in *TenantSecretSpec) DeepCopyInto(out *TenantSecretSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TenantsSpec ¶
type TenantsSpec struct { // Mode defines the mode in which lokistack-gateway component will be configured. // // +required // +kubebuilder:validation:Required // +kubebuilder:default:=openshift-logging // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:select:static","urn:alm:descriptor:com.tectonic.ui:select:dynamic","urn:alm:descriptor:com.tectonic.ui:select:openshift-logging"},displayName="Mode" Mode ModeType `json:"mode"` // Authentication defines the lokistack-gateway component authentication configuration spec per tenant. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Authentication" Authentication []AuthenticationSpec `json:"authentication,omitempty"` // Authorization defines the lokistack-gateway component authorization configuration spec per tenant. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Authorization" Authorization *AuthorizationSpec `json:"authorization,omitempty"` }
TenantsSpec defines the mode, authentication and authorization configuration of the lokiStack gateway component.
func (*TenantsSpec) DeepCopy ¶
func (in *TenantsSpec) DeepCopy() *TenantsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantsSpec.
func (*TenantsSpec) DeepCopyInto ¶
func (in *TenantsSpec) DeepCopyInto(out *TenantsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.