v1

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2021 License: AGPL-3.0 Imports: 34 Imported by: 8

Documentation

Overview

Package v1 is the v1beta1 version of the API. +groupName=minio.min.io +versionName=v1

Index

Constants

View Source
const (
	WebhookAPIVersion       = "/webhook/v1"
	WebhookDefaultPort      = "4222"
	WebhookSecret           = "operator-webhook-secret"
	WebhookOperatorUsername = "webhookUsername"
	WebhookOperatorPassword = "webhookPassword"
)

Webhook API constants

View Source
const (
	WebhookMinIOArgs   = "MINIO_ARGS"
	WebhookMinIOBucket = "MINIO_DNS_WEBHOOK_ENDPOINT"
)

Webhook environment variable constants

View Source
const (
	WebhookAPIGetenv        = WebhookAPIVersion + "/getenv"
	WebhookAPIBucketService = WebhookAPIVersion + "/bucketsrv"
	WebhookAPIUpdate        = WebhookAPIVersion + "/update"
)

List of webhook APIs

View Source
const CSRNameSuffix = "-csr"

CSRNameSuffix specifies the suffix added to Tenant name to create a CSR

View Source
const ConsoleAdminPolicyName = "consoleAdmin"

ConsoleAdminPolicyName denotes the policy name for Console user

View Source
const ConsoleCertPath = "/tmp/certs"

ConsoleCertPath is the path where all Console certs are mounted

View Source
const ConsoleConfigMountPath = "/tmp/console"

ConsoleConfigMountPath specifies the path where Console config file and all secrets are mounted We keep this to /tmp so it doesn't require any special permissions

View Source
const ConsoleContainerName = "console"

ConsoleContainerName specifies the default container name for Console

View Source
const ConsoleName = "-console"

ConsoleName specifies the default container name for Console

View Source
const ConsolePort = 9090

ConsolePort specifies the default Console port number.

View Source
const ConsolePrometheusURL = "CONSOLE_PROMETHEUS_URL"

ConsolePrometheusURL is the url to the prometheus the console should use to pull metrics from.

View Source
const ConsoleRestartPolicy = corev1.RestartPolicyAlways

ConsoleRestartPolicy defines the default restart policy for Console Containers

View Source
const ConsoleServiceNameSuffix = "-ui"

ConsoleServiceNameSuffix specifies the suffix added to Tenant service name to create a service for console

View Source
const ConsoleServicePortName = "http-console"

ConsoleServicePortName specifies the default Console Service's port name.

View Source
const ConsoleServiceTLSPortName = "https-console"

ConsoleServiceTLSPortName specifies the default Console Service's port name.

View Source
const ConsoleTLSPort = 9443

ConsoleTLSPort specifies the default Console port number for HTTPS.

View Source
const ConsoleTenantLabel = "v1.min.io/console"

ConsoleTenantLabel is applied to the Console pods of a Tenant cluster

View Source
const DefaultConsoleImage = "minio/console:v0.4.6"

DefaultConsoleImage specifies the latest Console Docker hub image

View Source
const DefaultConsoleReplicas = 2

DefaultConsoleReplicas specifies the default number of Console pods to be created if not specified

View Source
const DefaultImagePullPolicy = corev1.PullAlways

DefaultImagePullPolicy specifies the policy to image pulls

View Source
const DefaultKESImage = "minio/kes:v0.12.1"

DefaultKESImage specifies the latest KES Docker hub image

View Source
const DefaultKESReplicas = 2

DefaultKESReplicas specifies the default number of KES pods to be created if not specified

View Source
const DefaultLogSearchAPIImage = "minio/logsearchapi:latest"

DefaultLogSearchAPIImage specifies the latest logsearchapi container image

View Source
const DefaultMinIOImage = "minio/minio:RELEASE.2020-12-23T02-24-12Z"

DefaultMinIOImage specifies the default MinIO Docker hub image

View Source
const DefaultMinIOUpdateURL = "https://dl.min.io/server/minio/release/" + runtime.GOOS + "-" + runtime.GOARCH + "/archive/"

DefaultMinIOUpdateURL specifies the default MinIO URL where binaries are pulled from during MinIO upgrades

View Source
const DefaultPodManagementPolicy = appsv1.ParallelPodManagement

DefaultPodManagementPolicy specifies default pod management policy as expllained here https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies

View Source
const DefaultPoolName = "pool-0"

DefaultPoolName specifies the default pool name

View Source
const DefaultServers = 1

DefaultServers specifies the default MinIO replicas to use for distributed deployment if not specified explicitly by user

View Source
const DefaultUpdateStrategy = "RollingUpdate"

DefaultUpdateStrategy specifies default pod update policy as explained here https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies

View Source
const DefaultVolumesPerServer = 1

DefaultVolumesPerServer specifies the default number of volumes per MinIO Tenant

View Source
const InitContainerImage = "busybox:1.32"

InitContainerImage name for init container.

View Source
const KESConfigMountPath = "/tmp/kes"

KESConfigMountPath specifies the path where KES config file and all secrets are mounted We keep this to /tmp so it doesn't require any special permissions

View Source
const KESContainerName = "kes"

KESContainerName specifies the default container name for KES

View Source
const KESHLSvcNameSuffix = "-kes-hl-svc"

KESHLSvcNameSuffix specifies the suffix added to Tenant name to create a headless service for KES

View Source
const KESInstanceLabel = "v1.min.io/kes"

KESInstanceLabel is applied to the KES pods of a Tenant cluster

View Source
const KESJobRestartPolicy = corev1.RestartPolicyOnFailure

KESJobRestartPolicy specifies the restart policy for the job created for key creation

View Source
const KESMinIOKey = "my-minio-key"

KESMinIOKey is the name of key that KES creates on the KMS backend

View Source
const KESName = "-kes"

KESName specifies the default container name for KES

View Source
const KESPort = 7373

KESPort specifies the default KES Service's port number.

View Source
const KESServicePortName = "http-kes"

KESServicePortName specifies the default KES Service's port name.

View Source
const LogAuditDB = "minio_logs"

LogAuditDB holds the name of the DB used to store MinIO audit events

View Source
const LogAuditDBKey = "POSTGRES_DB"

LogAuditDBKey is the k8s secret/environment variable key name referring to postgress default database.

View Source
const LogAuditTokenKey = "LOGSEARCH_AUDIT_AUTH_TOKEN"

LogAuditTokenKey is the k8s secret/environment variable key name referring to the token used to authenticate audit log ingestion from tenant's MinIO

View Source
const LogDBInstanceLabel = "v1.min.io/log-pg"

LogDBInstanceLabel is applied to the Log (Postgres server) pods

View Source
const LogDbLabel = "v1.min.io/logdb"

LogDbLabel is applied to all log db components of a Tenant cluster

View Source
const LogHLSvcNameSuffix = "-log-hl-svc"

LogHLSvcNameSuffix specifies the suffix added to Tenant name to create a headless service for Log

View Source
const LogPgConnStr = "LOGSEARCH_PG_CONN_STR"

LogPgConnStr is the k8s env var key name referring to the postgres connection string; used in logsearchapi deployment

View Source
const LogPgContainerName = "log-search-pg"

LogPgContainerName is the default name for the Log (PostgreSQL) server container

View Source
const LogPgImage = "library/postgres"

LogPgImage specifies the latest Postgres container image

View Source
const LogPgPassKey = "POSTGRES_PASSWORD"

LogPgPassKey is the k8s secret/environment variable key name referring to postgress password

View Source
const LogPgPort = 5432

LogPgPort specifies the default Log Service's port number.

View Source
const LogPgPortName = "http-log-pg"

LogPgPortName specifies the default Log Service Postgres server's port name.

View Source
const LogPgUser = "postgres"

LogPgUser is the POSTGRES_USER used for Log feature

View Source
const LogPgUserKey = "POSTGRES_USER"

LogPgUserKey is the k8s secret/environment variable key name referring to postgres user

View Source
const LogQueryTokenKey = "LOGSEARCH_QUERY_AUTH_TOKEN"

LogQueryTokenKey is the k8s secret/environment variable key name referring to the token used to perform search query on audit logs persisted.

View Source
const LogSearchAPIContainerName = "log-search-api"

LogSearchAPIContainerName is the name for the log search API server container

View Source
const LogSearchAPIInstanceLabel = "v1.min.io/logsearchapi"

LogSearchAPIInstanceLabel is applied to the Log Search API server pods

View Source
const LogSearchAPIPort = 8080

LogSearchAPIPort specifies the default Log Search API Service's port number.

View Source
const LogSearchAPIPortName = "http-logsearchapi"

LogSearchAPIPortName specifies the default Log Search API server's port name.

View Source
const LogSearchDiskCapacityGB = "LOGSEARCH_DISK_CAPACITY_GB"

LogSearchDiskCapacityGB is the k8s secret/environment variable key name referring to disk capacity required to store tenant's audit logs

View Source
const MinIOCRDResourceKind = "Tenant"

MinIOCRDResourceKind is the Kind of a Cluster.

View Source
const MinIOCertPath = "/tmp/certs"

MinIOCertPath is the path where all MinIO certs are mounted

View Source
const MinIODNSInitContainer = "minio-dns-wait"

MinIODNSInitContainer Init Container for DNS

View Source
const MinIOHLSvcNameSuffix = "-hl"

MinIOHLSvcNameSuffix specifies the suffix added to Tenant name to create a headless service

View Source
const MinIOPort = 9000

MinIOPort specifies the default Tenant port number.

View Source
const MinIOPortLoadBalancerSVC = 80

MinIOPortLoadBalancerSVC specifies the default Service port number for the load balancer service.

View Source
const MinIOServerName = "minio"

MinIOServerName specifies the default container name for Tenant

View Source
const MinIOServiceHTTPPortName = "http-minio"

MinIOServiceHTTPPortName specifies the default Service's http port name, e.g. for automatic protocol selection in Istio

View Source
const MinIOServiceHTTPSPortName = "https-minio"

MinIOServiceHTTPSPortName specifies the default Service's https port name, e.g. for automatic protocol selection in Istio

View Source
const MinIOTLSPortLoadBalancerSVC = 443

MinIOTLSPortLoadBalancerSVC specifies the default Service TLS port number for the load balancer service.

View Source
const MinIOVolumeInitContainer = "minio-vol-wait"

MinIOVolumeInitContainer Init Container for DNS

View Source
const MinIOVolumeMountPath = "/export"

MinIOVolumeMountPath specifies the default mount path for MinIO volumes

View Source
const MinIOVolumeName = "export"

MinIOVolumeName specifies the default volume name for MinIO volumes

View Source
const MinIOVolumeSubPath = ""

MinIOVolumeSubPath specifies the default sub path under mount path

View Source
const OperatorLabel = "v1.min.io/version"

OperatorLabel denotes the version of the Tenant operator running in the cluster.

View Source
const PoolLabel = "v1.min.io/pool"

PoolLabel is applied to all components in a Pool of a Tenant cluster

View Source
const PrometheusAPIPort = 9090

PrometheusAPIPort specifies the default Prometheus API Service's port number.

View Source
const PrometheusContainerName = "prometheus"

PrometheusContainerName is the name of the prometheus server container

View Source
const PrometheusHLSvcNameSuffix = "-prometheus-hl-svc"

PrometheusHLSvcNameSuffix specifies the suffix added to Tenant name to create a headless service for Prometheus.

View Source
const PrometheusImage = "quay.io/prometheus/prometheus:latest"

PrometheusImage specifies the container image for prometheus server

View Source
const PrometheusInstanceLabel = "v1.min.io/prometheus"

PrometheusInstanceLabel is applied to the prometheus server pod

View Source
const PrometheusPort = 9090

PrometheusPort specifies the default prometheus port number

View Source
const PrometheusPortName = "http-prometheus"

PrometheusPortName speicfies the default prometheus port's name.

View Source
const TenantLabel = "v1.min.io/tenant"

TenantLabel is applied to all components of a Tenant cluster

View Source
const Version = "v1"

Version specifies the API Version

Variables

View Source
var (
	// SchemeBuilder collects the scheme builder functions for the MinIO
	// Operator API.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme applies the SchemeBuilder functions to a specified scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var DefaultEllipticCurve = elliptic.P256()

DefaultEllipticCurve specifies the default elliptic curve to be used for key generation

View Source
var DefaultOrgName = []string{"Acme Co"}

DefaultOrgName specifies the default Org name to be used in automatic certificate generation

View Source
var DefaultQueryInterval = time.Second * 5

DefaultQueryInterval specifies the interval between each query for CSR Status

View Source
var DefaultQueryTimeout = time.Minute * 20

DefaultQueryTimeout specifies the timeout for query for CSR Status

View Source
var KESIdentity string

KESIdentity is the public identity generated for MinIO Server based on Used only during KES Deployments

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: operator.GroupName, Version: Version}

SchemeGroupVersion is group version used to register these objects

View Source
var TLSSecretSuffix = "-tls"

TLSSecretSuffix is the suffix applied to Tenant name to create the TLS secret

Functions

func ExtractTar

func ExtractTar(filesToExtract []string, basePath, tarFileName string) error

ExtractTar extracts all tar files from the list `filesToExtract` and puts the files in the `basePath` location

func GetClusterDomain added in v0.4.0

func GetClusterDomain() string

GetClusterDomain returns the Kubernetes cluster domain

func GetNSFromFile

func GetNSFromFile() string

GetNSFromFile assumes the operator is running inside a k8s pod and extract the current namespace from the /var/run/secrets/kubernetes.io/serviceaccount/namespace file

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func ReleaseTagToReleaseTime

func ReleaseTagToReleaseTime(releaseTag string) (releaseTime time.Time, err error)

ReleaseTagToReleaseTime - converts a 'RELEASE.2017-09-29T19-16-56Z.hotfix' into the build time

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AuditConfig added in v0.4.0

type AuditConfig struct {
	// DiskCapacityGB defines the disk capacity in GB available to store audit logs
	// +optional
	DiskCapacityGB *int `json:"diskCapacityGB,omitempty"`
}

AuditConfig defines configuration parameters for Audit (type) logs

func (*AuditConfig) DeepCopy added in v0.4.0

func (in *AuditConfig) DeepCopy() *AuditConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditConfig.

func (*AuditConfig) DeepCopyInto added in v0.4.0

func (in *AuditConfig) DeepCopyInto(out *AuditConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateConfig

type CertificateConfig struct {
	CommonName       string   `json:"commonName,omitempty"`
	OrganizationName []string `json:"organizationName,omitempty"`
	DNSNames         []string `json:"dnsNames,omitempty"`
}

CertificateConfig is a specification for certificate contents

func (*CertificateConfig) DeepCopy

func (in *CertificateConfig) DeepCopy() *CertificateConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfig.

func (*CertificateConfig) DeepCopyInto

func (in *CertificateConfig) DeepCopyInto(out *CertificateConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConsoleConfiguration

type ConsoleConfiguration struct {
	// Replicas defines number of pods for KES StatefulSet.
	// +optional
	Replicas int32 `json:"replicas,omitempty"`
	// Image defines the Tenant Console Docker image.
	// +optional
	Image string `json:"image,omitempty"`
	// Image pull policy. One of Always, Never, IfNotPresent.
	// This is applied to MinIO Console pods only.
	// Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/containers/images#updating-images
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// This secret provides all environment variables for KES
	// This is a mandatory field
	ConsoleSecret *corev1.LocalObjectReference `json:"consoleSecret"`
	// ServiceAccountName is the name of the ServiceAccount to use to run pods of all Console
	// Pods created as a part of this Tenant.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
	// If provided, use these environment variables for Console resource
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
	// If provided, use these requests and limit for cpu/memory resource allocation
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// ExternalCertSecret allows a user to provide an external certificate and private key. This is
	// used for enabling TLS on Console and has priority over AutoCert.
	// +optional
	ExternalCertSecret *LocalCertificateReference `json:"externalCertSecret,omitempty"`
	// ExternalCaCertSecret allows a user to provide additional CA certificates. This is
	// used for Console to verify TLS connections with other applications.
	// +optional
	ExternalCaCertSecret []*LocalCertificateReference `json:"externalCaCertSecret,omitempty"`
	// If provided, use these annotations for Console Object Meta annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// If provided, use these labels for Console Object Meta labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// If provided, use these nodeSelector for Console Object Meta nodeSelector
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
}

ConsoleConfiguration defines the specifications for Console Deployment

func (*ConsoleConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleConfiguration.

func (*ConsoleConfiguration) DeepCopyInto

func (in *ConsoleConfiguration) DeepCopyInto(out *ConsoleConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ConsoleConfiguration) EqualImage

func (c ConsoleConfiguration) EqualImage(currentImage string) bool

EqualImage returns true if config image and current input image are same

type ExposeServices added in v0.4.0

type ExposeServices struct {
	// MinIO tells operator whether to expose the MinIO service
	// +optional
	MinIO bool `json:"minio,omitempty"`
	// Console tells operator whether to expose the Console Service
	// +optional
	Console bool `json:"console,omitempty"`
}

ExposeServices tells operator whether to expose the services for MinIO and Console

func (*ExposeServices) DeepCopy added in v0.4.0

func (in *ExposeServices) DeepCopy() *ExposeServices

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExposeServices.

func (*ExposeServices) DeepCopyInto added in v0.4.0

func (in *ExposeServices) DeepCopyInto(out *ExposeServices)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KESConfig

type KESConfig struct {
	// Replicas defines number of pods for KES StatefulSet.
	// +optional
	Replicas int32 `json:"replicas,omitempty"`
	// Image defines the Tenant KES Docker image.
	// +optional
	Image string `json:"image,omitempty"`
	// Image pull policy. One of Always, Never, IfNotPresent.
	// This is applied to KES pods only.
	// Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/containers/images#updating-images
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// ServiceAccountName is the name of the ServiceAccount to use to run pods of all KES
	// Pods created as a part of this Tenant.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
	// This kesSecret serves as the configuration for KES
	// This is a mandatory field
	Configuration *corev1.LocalObjectReference `json:"kesSecret"`
	// ExternalCertSecret allows a user to specify custom CA certificate, and private key for group replication SSL.
	// +optional
	ExternalCertSecret *LocalCertificateReference `json:"externalCertSecret,omitempty"`
	// ClientCertSecret allows a user to specify a custom root certificate, client certificate and client private key. This is
	// used for adding client certificates on KES --> used for KES authentication against Vault or other KMS that supports mTLS.
	// +optional
	ClientCertSecret *LocalCertificateReference `json:"clientCertSecret,omitempty"`
	// If provided, use these annotations for KES Object Meta annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// If provided, use these labels for KES Object Meta labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// If provided, use these nodeSelector for KES Object Meta nodeSelector
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
}

KESConfig defines the specifications for KES StatefulSet

func (*KESConfig) DeepCopy

func (in *KESConfig) DeepCopy() *KESConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KESConfig.

func (*KESConfig) DeepCopyInto

func (in *KESConfig) DeepCopyInto(out *KESConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LocalCertificateReference

type LocalCertificateReference struct {
	Name string `json:"name"`
	Type string `json:"type,omitempty"`
}

LocalCertificateReference defines the spec for a local certificate

func (*LocalCertificateReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalCertificateReference.

func (*LocalCertificateReference) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LogConfig added in v0.4.0

type LogConfig struct {
	// Image defines the tenant's LogSearchAPI container image.
	// +optional
	Image string `json:"image,omitempty"`
	// If provided, use these requests and limit for cpu/memory resource allocation
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// If specified, affinity will define the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// Tolerations allows users to set entries like effect, key, operator, value.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// If provided, use these annotations for Console Object Meta annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// If provided, use these labels for Console Object Meta labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Db holds configuration for audit logs DB
	// +optional
	Db *LogDbConfig `json:"db,omitempty"`
	// AuditConfig holds configuration for audit logs from MinIO
	// +optional
	Audit *AuditConfig `json:"audit,omitempty"`
}

LogConfig defines configuration parameters for Log feature

func (*LogConfig) DeepCopy added in v0.4.0

func (in *LogConfig) DeepCopy() *LogConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogConfig.

func (*LogConfig) DeepCopyInto added in v0.4.0

func (in *LogConfig) DeepCopyInto(out *LogConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*LogConfig) EqualImage added in v0.4.0

func (lc *LogConfig) EqualImage(image string) bool

EqualImage returns true if image specified in `LogConfig` is equal to `image`

type LogDbConfig added in v0.4.0

type LogDbConfig struct {
	// Image defines postgres DB container image.
	// +optional
	Image string `json:"image,omitempty"`
	// VolumeClaimTemplate allows a user to specify how volumes inside a Tenant
	VolumeClaimTemplate *corev1.PersistentVolumeClaim `json:"volumeClaimTemplate"`
	// If provided, use these requests and limit for cpu/memory resource allocation
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// If specified, affinity will define the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// Tolerations allows users to set entries like effect, key, operator, value.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// If provided, use these annotations for Console Object Meta annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// If provided, use these labels for Console Object Meta labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

LogDbConfig Holds all the configurations regarding the Log DB (Postgres) StatefulSet

func (*LogDbConfig) DeepCopy added in v0.4.0

func (in *LogDbConfig) DeepCopy() *LogDbConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogDbConfig.

func (*LogDbConfig) DeepCopyInto added in v0.4.0

func (in *LogDbConfig) DeepCopyInto(out *LogDbConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Pool added in v0.4.0

type Pool struct {
	// Name of the pool
	// +optional
	Name string `json:"name,omitempty"`
	// Number of Servers in the pool
	Servers int32 `json:"servers"`
	// Number of persistent volumes that will be attached per server
	VolumesPerServer int32 `json:"volumesPerServer"`
	// VolumeClaimTemplate allows a user to specify how volumes are configured for the Pool
	VolumeClaimTemplate *corev1.PersistentVolumeClaim `json:"volumeClaimTemplate"`
	// If provided, use these requests and limit for cpu/memory resource allocation
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// If specified, affinity will define the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// Tolerations allows users to set entries like effect, key, operator, value.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

Pool defines the spec for a MinIO Pool

func (*Pool) DeepCopy added in v0.4.0

func (in *Pool) DeepCopy() *Pool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pool.

func (*Pool) DeepCopyInto added in v0.4.0

func (in *Pool) DeepCopyInto(out *Pool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Pool) Validate added in v0.4.0

func (z *Pool) Validate(zi int) error

Validate validate single pool as per MinIO deployment requirements

type PrometheusConfig added in v0.4.0

type PrometheusConfig struct {
	// DiskCapacityGB defines the disk capacity in GB available to the
	// Prometheus server
	// +optional
	DiskCapacityDB *int `json:"diskCapacityGB,omitempty"`
	// If provided, use these annotations for Prometheus Object Meta annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// If provided, use these labels for Prometheus Object Meta labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// If provided, use these nodeSelector for Prometheus Object Meta nodeSelector
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// If provided, use these requests and limit for cpu/memory resource allocation
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

PrometheusConfig defines configuration for Prometheus metrics server

func (*PrometheusConfig) DeepCopy added in v0.4.0

func (in *PrometheusConfig) DeepCopy() *PrometheusConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusConfig.

func (*PrometheusConfig) DeepCopyInto added in v0.4.0

func (in *PrometheusConfig) DeepCopyInto(out *PrometheusConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type S3Features added in v0.4.0

type S3Features struct {
	// BucketDNS if 'true' means Buckets can be accessed using `<bucket>.minio.default.svc.cluster.local`
	BucketDNS bool `json:"bucketDNS"`
}

S3Features list of S3 features to enable/disable. Currently only supports BucketDNS

func (*S3Features) DeepCopy added in v0.4.0

func (in *S3Features) DeepCopy() *S3Features

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Features.

func (*S3Features) DeepCopyInto added in v0.4.0

func (in *S3Features) DeepCopyInto(out *S3Features)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SideCars added in v0.4.0

type SideCars struct {
	// List of containers to run inside the Pod
	// +patchMergeKey=name
	// +patchStrategy=merge
	Containers []corev1.Container `json:"containers" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=containers"`
	// volumeClaimTemplates is a list of claims that pods are allowed to reference.
	// The StatefulSet controller is responsible for mapping network identities to
	// claims in a way that maintains the identity of a pod. Every claim in
	// this list must have at least one matching (by name) volumeMount in one
	// container in the template. A claim in this list takes precedence over
	// any volumes in the template, with the same name.
	// TODO: Define the behavior if a claim already exists with the same name.
	// +optional
	VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,4,rep,name=volumeClaimTemplates"`
	// List of volumes that can be mounted by containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name" protobuf:"bytes,1,rep,name=volumes"`
}

SideCars represents a list of containers that will be attached to the MinIO pods on each pool

func (*SideCars) DeepCopy added in v0.4.0

func (in *SideCars) DeepCopy() *SideCars

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SideCars.

func (*SideCars) DeepCopyInto added in v0.4.0

func (in *SideCars) DeepCopyInto(out *SideCars)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Tenant

type Tenant struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Scheduler TenantScheduler `json:"scheduler,omitempty"`
	Spec      TenantSpec      `json:"spec"`
	// Status provides details of the state of the Tenant
	// +optional
	Status TenantStatus `json:"status"`
}

Tenant is a specification for a MinIO resource

func (*Tenant) AllMinIOHosts

func (t *Tenant) AllMinIOHosts() []string

AllMinIOHosts returns the all the individual domain names relevant for current Tenant

func (*Tenant) AutoCert

func (t *Tenant) AutoCert() bool

AutoCert is enabled by default, otherwise we return the user provided value

func (*Tenant) ConsoleCIServiceName

func (t *Tenant) ConsoleCIServiceName() string

ConsoleCIServiceName returns the name for Console Cluster IP Service

func (*Tenant) ConsoleCSRName

func (t *Tenant) ConsoleCSRName() string

ConsoleCSRName returns the name of CSR that generated if AutoTLS is enabled for Console Namespace adds uniqueness to the CSR name (single Console tenant per namsepace) since CSR is not a namespaced resource

func (*Tenant) ConsoleCommonName

func (t *Tenant) ConsoleCommonName() string

ConsoleCommonName returns the CommonName to be used in the csr template

func (*Tenant) ConsoleDeploymentName

func (t *Tenant) ConsoleDeploymentName() string

ConsoleDeploymentName returns the name for Console Deployment

func (*Tenant) ConsoleExternalCaCerts added in v0.4.0

func (t *Tenant) ConsoleExternalCaCerts() bool

ConsoleExternalCaCerts returns true is the user has provided a additional CA certificates for Console

func (*Tenant) ConsoleExternalCert

func (t *Tenant) ConsoleExternalCert() bool

ConsoleExternalCert returns true is the user has provided a secret that contains CA cert, server cert and server key for Console pods

func (*Tenant) ConsolePodLabels

func (t *Tenant) ConsolePodLabels() map[string]string

ConsolePodLabels returns the default labels for Console Pod

func (*Tenant) ConsoleServerHost

func (t *Tenant) ConsoleServerHost() string

ConsoleServerHost returns ClusterIP service Host for current Console Tenant

func (*Tenant) ConsoleTLSSecretName

func (t *Tenant) ConsoleTLSSecretName() string

ConsoleTLSSecretName returns the name of Secret that has Console TLS related Info (Cert & Private Key)

func (*Tenant) ConsoleVolMountName

func (t *Tenant) ConsoleVolMountName() string

ConsoleVolMountName returns the name of Secret that has TLS related Info (Cert & Private Key)

func (*Tenant) CreateConsoleUser

func (t *Tenant) CreateConsoleUser(madmClnt *madmin.AdminClient, consoleSecret map[string][]byte, skipCreateUser bool) error

CreateConsoleUser function creates an admin user

func (*Tenant) DeepCopy

func (in *Tenant) DeepCopy() *Tenant

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tenant.

func (*Tenant) DeepCopyInto

func (in *Tenant) DeepCopyInto(out *Tenant)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tenant) DeepCopyObject

func (in *Tenant) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Tenant) EnsureDefaults

func (t *Tenant) EnsureDefaults() *Tenant

EnsureDefaults will ensure that if a user omits and fields in the spec that are required, we set some sensible defaults. For example a user can choose to omit the version and number of members.

func (*Tenant) ExternalCaCerts added in v0.4.0

func (t *Tenant) ExternalCaCerts() bool

ExternalCaCerts returns true is the user has provided a additional CA certificates for MinIO

func (*Tenant) ExternalCert

func (t *Tenant) ExternalCert() bool

ExternalCert returns true is the user has provided a secret that contains CA cert, server cert and server key

func (*Tenant) ExternalClientCert

func (t *Tenant) ExternalClientCert() bool

ExternalClientCert returns true is the user has provided a secret that contains CA client cert, server cert and server key

func (*Tenant) GetConsoleEnvVars added in v0.4.0

func (t *Tenant) GetConsoleEnvVars() (env []corev1.EnvVar)

GetConsoleEnvVars returns the environment variables for the console deployment of a particular tenant

func (*Tenant) HasCertConfig

func (t *Tenant) HasCertConfig() bool

HasCertConfig returns true if the user has provided a certificate config

func (*Tenant) HasConsoleEnabled

func (t *Tenant) HasConsoleEnabled() bool

HasConsoleEnabled checks if the console has been enabled by the user

func (*Tenant) HasConsoleSecret

func (t *Tenant) HasConsoleSecret() bool

HasConsoleSecret returns true if the user has provided an console secret for a Tenant else false

func (*Tenant) HasCredsSecret

func (t *Tenant) HasCredsSecret() bool

HasCredsSecret returns true if the user has provided a secret for a Tenant else false

func (*Tenant) HasKESEnabled

func (t *Tenant) HasKESEnabled() bool

HasKESEnabled checks if kes configuration is provided by user

func (*Tenant) HasLogEnabled added in v0.4.0

func (t *Tenant) HasLogEnabled() bool

HasLogEnabled checks if Log feature has been enabled

func (*Tenant) HasPrometheusEnabled added in v0.4.0

func (t *Tenant) HasPrometheusEnabled() bool

HasPrometheusEnabled checks if Prometheus metrics has been enabled

func (*Tenant) KESCSRName

func (t *Tenant) KESCSRName() string

KESCSRName returns the name of CSR that generated if AutoTLS is enabled for KES Namespace adds uniqueness to the CSR name (single KES tenant per namsepace) since CSR is not a namespaced resource

func (*Tenant) KESClientCert

func (t *Tenant) KESClientCert() bool

KESClientCert returns true is the user has provided a secret that contains CA cert, client cert and client key for KES pods

func (*Tenant) KESExternalCert

func (t *Tenant) KESExternalCert() bool

KESExternalCert returns true is the user has provided a secret that contains CA cert, server cert and server key for KES pods

func (*Tenant) KESHLServiceName

func (t *Tenant) KESHLServiceName() string

KESHLServiceName returns the name of headless service that is created to manage the StatefulSet of this Tenant

func (*Tenant) KESHosts

func (t *Tenant) KESHosts() []string

KESHosts returns the host names created for current KES StatefulSet

func (*Tenant) KESJobName

func (t *Tenant) KESJobName() string

KESJobName returns the name for KES Key Job

func (*Tenant) KESPodLabels

func (t *Tenant) KESPodLabels() map[string]string

KESPodLabels returns the default labels for KES Pod

func (*Tenant) KESReplicas

func (t *Tenant) KESReplicas() int32

KESReplicas returns the number of total KES replicas required for this cluster

func (*Tenant) KESServiceEndpoint

func (t *Tenant) KESServiceEndpoint() string

KESServiceEndpoint similar to KESServiceHost but a URL with current scheme

func (*Tenant) KESServiceHost

func (t *Tenant) KESServiceHost() string

KESServiceHost returns headless service Host for KES in current Tenant

func (*Tenant) KESStatefulSetName

func (t *Tenant) KESStatefulSetName() string

KESStatefulSetName returns the name for KES StatefulSet

func (*Tenant) KESTLSSecretName

func (t *Tenant) KESTLSSecretName() string

KESTLSSecretName returns the name of Secret that has KES TLS related Info (Cert & Private Key)

func (*Tenant) KESVolMountName

func (t *Tenant) KESVolMountName() string

KESVolMountName returns the name of Secret that has TLS related Info (Cert & Private Key)

func (*Tenant) KESWildCardName

func (t *Tenant) KESWildCardName() string

KESWildCardName returns the wild card name managed by headless service created for KES StatefulSet in current Tenant

func (*Tenant) LogHLServiceName added in v0.4.0

func (t *Tenant) LogHLServiceName() string

LogHLServiceName returns name of Headless service for the Log statefulsets

func (*Tenant) LogPgPodLabels added in v0.4.0

func (t *Tenant) LogPgPodLabels() map[string]string

LogPgPodLabels returns the default labels for Log Postgres server pods

func (*Tenant) LogSearchAPIDeploymentName added in v0.4.0

func (t *Tenant) LogSearchAPIDeploymentName() string

LogSearchAPIDeploymentName returns name of Log Search API server deployment

func (*Tenant) LogSearchAPIPodLabels added in v0.4.0

func (t *Tenant) LogSearchAPIPodLabels() map[string]string

LogSearchAPIPodLabels returns the default labels for Log search API server pods

func (*Tenant) LogSearchAPIServiceName added in v0.4.0

func (t *Tenant) LogSearchAPIServiceName() string

LogSearchAPIServiceName returns name of Log Search API service name

func (*Tenant) LogSecretName added in v0.4.0

func (t *Tenant) LogSecretName() string

LogSecretName returns name of secret shared by Log PG server and log-search-api server

func (*Tenant) LogStatefulsetName added in v0.4.0

func (t *Tenant) LogStatefulsetName() string

LogStatefulsetName returns name of statefulsets meant for Log feature

func (*Tenant) MinIOBucketBaseDomain

func (t *Tenant) MinIOBucketBaseDomain() string

MinIOBucketBaseDomain returns the base domain name for buckets

func (*Tenant) MinIOBucketBaseWildcardDomain

func (t *Tenant) MinIOBucketBaseWildcardDomain() string

MinIOBucketBaseWildcardDomain returns the base domain name for buckets

func (*Tenant) MinIOCIServiceName

func (t *Tenant) MinIOCIServiceName() string

MinIOCIServiceName returns the name of Cluster IP service that is created to communicate with current MinIO StatefulSet pods

func (*Tenant) MinIOCSRName

func (t *Tenant) MinIOCSRName() string

MinIOCSRName returns the name of CSR that is generated if AutoTLS is enabled Namespace adds uniqueness to the CSR name (single MinIO tenant per namsepace) since CSR is not a namespaced resource

func (*Tenant) MinIOClientCSRName

func (t *Tenant) MinIOClientCSRName() string

MinIOClientCSRName returns the name of CSR that is generated for Client side authentication Used by KES Pods

func (*Tenant) MinIOClientTLSSecretName

func (t *Tenant) MinIOClientTLSSecretName() string

MinIOClientTLSSecretName returns the name of Secret that has TLS related Info (Cert & Private Key) for MinIO <-> KES client side authentication.

func (*Tenant) MinIOEndpoints

func (t *Tenant) MinIOEndpoints(hostsTemplate string) (endpoints []string)

MinIOEndpoints similar to MinIOHosts but as URLs

func (*Tenant) MinIOFQDNServiceName

func (t *Tenant) MinIOFQDNServiceName() string

MinIOFQDNServiceName returns the name of the service created for the tenant.

func (*Tenant) MinIOHLServiceName

func (t *Tenant) MinIOHLServiceName() string

MinIOHLServiceName returns the name of headless service that is created to manage the StatefulSet of this Tenant

func (*Tenant) MinIOHeadlessServiceHost

func (t *Tenant) MinIOHeadlessServiceHost() string

MinIOHeadlessServiceHost returns headless service Host for current Tenant

func (*Tenant) MinIOHealthCheck

func (t *Tenant) MinIOHealthCheck() bool

MinIOHealthCheck check MinIO cluster health

func (*Tenant) MinIOHosts

func (t *Tenant) MinIOHosts() (hosts []string)

MinIOHosts returns the domain names in ellipses format created for current Tenant

func (*Tenant) MinIOPodLabels

func (t *Tenant) MinIOPodLabels() map[string]string

MinIOPodLabels returns the default labels for MinIO Pod

func (*Tenant) MinIOServerEndpoint

func (t *Tenant) MinIOServerEndpoint() string

MinIOServerEndpoint similar to MinIOServerHostAddress but a URL with current scheme

func (*Tenant) MinIOServerHost

func (t *Tenant) MinIOServerHost() string

MinIOServerHost returns ClusterIP service Host for current Tenant

func (*Tenant) MinIOServerHostAddress

func (t *Tenant) MinIOServerHostAddress() string

MinIOServerHostAddress similar to MinIOServerHost but returns host with port

func (*Tenant) MinIOStatefulSetNameForPool added in v0.4.0

func (t *Tenant) MinIOStatefulSetNameForPool(z *Pool) string

MinIOStatefulSetNameForPool returns the name for MinIO StatefulSet

func (*Tenant) MinIOTLSSecretName

func (t *Tenant) MinIOTLSSecretName() string

MinIOTLSSecretName returns the name of Secret that has TLS related Info (Cert & Private Key)

func (*Tenant) MinIOWildCardName

func (t *Tenant) MinIOWildCardName() string

MinIOWildCardName returns the wild card name for all MinIO Pods in current StatefulSet

func (*Tenant) NewMinIOAdmin

func (t *Tenant) NewMinIOAdmin(minioSecret map[string][]byte) (*madmin.AdminClient, error)

NewMinIOAdmin initializes a new madmin.Client for operator interaction

func (*Tenant) OwnerRef

func (t *Tenant) OwnerRef() []metav1.OwnerReference

OwnerRef returns the OwnerReference to be added to all resources created by Tenant

func (*Tenant) PoolStatefulsetName added in v0.4.0

func (t *Tenant) PoolStatefulsetName(pool *Pool) string

PoolStatefulsetName returns the name of a statefulset for a given pool

func (*Tenant) PrometheusConfigMapName added in v0.4.0

func (t *Tenant) PrometheusConfigMapName() string

PrometheusConfigMapName returns name of the config map for Prometheus.

func (*Tenant) PrometheusConfigVolMountName added in v0.4.0

func (t *Tenant) PrometheusConfigVolMountName() string

PrometheusConfigVolMountName returns name of the prometheus config volume.

func (*Tenant) PrometheusHLServiceName added in v0.4.0

func (t *Tenant) PrometheusHLServiceName() string

PrometheusHLServiceName returns name of Headless service for the Log statefulsets

func (*Tenant) PrometheusPodLabels added in v0.4.0

func (t *Tenant) PrometheusPodLabels() map[string]string

PrometheusPodLabels returns the default labels for Prometheus server pods

func (*Tenant) PrometheusServiceName added in v0.4.0

func (t *Tenant) PrometheusServiceName() string

PrometheusServiceName returns name of the Prometheus service

func (*Tenant) PrometheusStatefulsetName added in v0.4.0

func (t *Tenant) PrometheusStatefulsetName() string

PrometheusStatefulsetName returns name of statefulset meant for Prometheus metrics.

func (*Tenant) S3BucketDNS added in v0.4.0

func (t *Tenant) S3BucketDNS() bool

S3BucketDNS indicates if Bucket DNS feature is enabled.

func (*Tenant) TLS

func (t *Tenant) TLS() bool

TLS indicates whether TLS is enabled for this tenant

func (*Tenant) TemplatedMinIOHosts

func (t *Tenant) TemplatedMinIOHosts(hostsTemplate string) (hosts []string)

TemplatedMinIOHosts returns the domain names in ellipses format created for current Tenant without the service part

func (*Tenant) UpdateURL

func (t *Tenant) UpdateURL(lrTime time.Time, overrideURL string) (string, error)

UpdateURL returns the URL for the sha256sum location of the new binary

func (*Tenant) Validate

func (t *Tenant) Validate() error

Validate returns an error if any configuration of the MinIO Tenant is invalid

func (*Tenant) VolumePathForPool added in v0.4.0

func (t *Tenant) VolumePathForPool(pool *Pool) string

VolumePathForPool returns the paths for MinIO mounts based on total number of volumes on a given pool

type TenantList

type TenantList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []Tenant `json:"items"`
}

TenantList is a list of Tenant resources

func (*TenantList) DeepCopy

func (in *TenantList) DeepCopy() *TenantList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantList.

func (*TenantList) DeepCopyInto

func (in *TenantList) DeepCopyInto(out *TenantList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TenantList) DeepCopyObject

func (in *TenantList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TenantScheduler

type TenantScheduler struct {
	// SchedulerName defines the name of scheduler to be used to schedule Tenant pods
	Name string `json:"name"`
}

TenantScheduler is the spec for a Tenant scheduler

func (*TenantScheduler) DeepCopy

func (in *TenantScheduler) DeepCopy() *TenantScheduler

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantScheduler.

func (*TenantScheduler) DeepCopyInto

func (in *TenantScheduler) DeepCopyInto(out *TenantScheduler)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TenantSpec

type TenantSpec struct {
	// Definition for Cluster in given MinIO cluster
	Pools []Pool `json:"pools"`
	// Image defines the Tenant Docker image.
	// +optional
	Image string `json:"image,omitempty"`
	// ImagePullSecret defines the secret to be used for pull image from a private Docker image.
	// +optional
	ImagePullSecret corev1.LocalObjectReference `json:"imagePullSecret,omitempty"`
	// Pod Management Policy for pod created by StatefulSet
	// +optional
	PodManagementPolicy appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"`
	// If provided, use this secret as the credentials for Tenant resource
	// Otherwise MinIO server creates dynamic credentials printed on MinIO server startup banner
	// +optional
	CredsSecret *corev1.LocalObjectReference `json:"credsSecret,omitempty"`
	// If provided, use these environment variables for Tenant resource
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
	// ExternalCertSecret allows a user to provide one or more TLS certificates and private keys. This is
	// used for enabling TLS with SNI support on MinIO server.
	// +optional
	ExternalCertSecret []*LocalCertificateReference `json:"externalCertSecret,omitempty"`
	// ExternalCaCertSecret allows a user to provide additional CA certificates. This is
	// used for MinIO to verify TLS connections with other applications.
	// +optional
	ExternalCaCertSecret []*LocalCertificateReference `json:"externalCaCertSecret,omitempty"`
	// ExternalClientCertSecret allows a user to specify custom CA client certificate, and private key. This is
	// used for adding client certificates on MinIO Pods --> used for KES authentication.
	// +optional
	ExternalClientCertSecret *LocalCertificateReference `json:"externalClientCertSecret,omitempty"`
	// Mount path for MinIO volume (PV). Defaults to /export
	// +optional
	Mountpath string `json:"mountPath,omitempty"`
	// Subpath inside mount path. This is the directory where MinIO stores data. Default to "" (empty)
	// +optional
	Subpath string `json:"subPath,omitempty"`
	// RequestAutoCert allows user to enable Kubernetes based TLS cert generation and signing as explained here:
	// https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/
	// +optional
	RequestAutoCert *bool `json:"requestAutoCert,omitempty"`
	// S3 related features can be disabled or enabled such as `bucketDNS` etc.
	S3 *S3Features `json:"s3,omitempty"`
	// +optional
	// CertConfig allows users to set entries like CommonName, Organization, etc for the certificate
	// +optional
	CertConfig *CertificateConfig `json:"certConfig,omitempty"`
	// Security Context allows user to set entries like runAsUser, privilege escalation etc.
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
	// ConsoleConfiguration is for setting up minio/console for graphical user interface
	//+optional
	Console *ConsoleConfiguration `json:"console,omitempty"`
	// KES is for setting up minio/kes as MinIO KMS
	//+optional
	KES *KESConfig `json:"kes,omitempty"`
	Log *LogConfig `json:"log,omitempty"`
	// Prometheus is for setting up Prometheus metrics.
	Prometheus *PrometheusConfig `json:"prometheus,omitempty"`
	// ServiceAccountName is the name of the ServiceAccount to use to run pods of all MinIO
	// Pods created as a part of this Tenant.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
	// PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods.
	// This is applied to MinIO pods only.
	// Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`
	// Image pull policy. One of Always, Never, IfNotPresent.
	// This is applied to MinIO pods only.
	// Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/containers/images#updating-images
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// SideCars a list of containers to run as sidecars along every MinIO Pod on every pool
	// +optional
	SideCars *SideCars `json:"sideCars,omitempty"`
	// ExposeServices tells operator whether to expose the MinIO service and/or the Console Service
	// +optional
	ExposeServices *ExposeServices `json:"exposeServices,omitempty"`
}

TenantSpec is the spec for a Tenant resource

func (*TenantSpec) DeepCopy

func (in *TenantSpec) DeepCopy() *TenantSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantSpec.

func (*TenantSpec) DeepCopyInto

func (in *TenantSpec) DeepCopyInto(out *TenantSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TenantStatus

type TenantStatus struct {
	CurrentState      string `json:"currentState"`
	AvailableReplicas int32  `json:"availableReplicas"`
}

TenantStatus is the status for a Tenant resource

func (*TenantStatus) DeepCopy

func (in *TenantStatus) DeepCopy() *TenantStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantStatus.

func (*TenantStatus) DeepCopyInto

func (in *TenantStatus) DeepCopyInto(out *TenantStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL