Documentation
¶
Overview ¶
+gotohelm:filename=_cert-issuers.go.tpl
+gotohelm:filename=_certs.go.tpl
+gotohelm:filename=_chart.go.tpl
+gotohelm:filename=_configmap.go.tpl
+gotohelm:filename=_console.go.tpl
+gotohelm:filename=_helpers.go.tpl
+gotohelm:filename=_notes.go.tpl
+gotohelm:filename=_poddisruptionbudget.go.tpl
+gotohelm:filename=_post-install-upgrade-job.go.tpl
+gotohelm:filename=_rbac.go.tpl
+gotohelm:filename=_secrets.go.tpl
+gotohelm:filename=_service.loadbalancer.go.tpl
+gotohelm:filename=_service.nodeport.go.tpl
+gotohelm:filename=_service.internal.go.tpl
+gotohelm:filename=_serviceaccount.go.tpl
+gotohelm:filename=_servicemonitor.go.tpl
+gotohelm:filename=_statefulset.go.tpl
+gotohelm:filename=_values.go.tpl
+gotohelm:ignore=true
Code generated by genpartial DO NOT EDIT.
+gotohelm:ignore=true
Index ¶
- Constants
- Variables
- func BootstrapFile(dot *helmette.Dot) string
- func BrokerList(dot *helmette.Dot, replicas int32, port int32) []string
- func CertIssuers(dot *helmette.Dot) []*certmanagerv1.Issuer
- func CertSecretName(dot *helmette.Dot, certName string, cert *TLSCert) string
- func ChartLabel(dot *helmette.Dot) string
- func ClientAuthRequired(dot *helmette.Dot) bool
- func ClientCerts(dot *helmette.Dot) []*certmanagerv1.Certificate
- func ClusterRoleBindings(dot *helmette.Dot) []*rbacv1.ClusterRoleBinding
- func ClusterRoles(dot *helmette.Dot) []*rbacv1.ClusterRole
- func CommonMounts(dot *helmette.Dot) []corev1.VolumeMount
- func CommonVolumes(dot *helmette.Dot) []corev1.Volume
- func ConfigMaps(dot *helmette.Dot) []*corev1.ConfigMap
- func ConsoleConfig(dot *helmette.Dot) map[string]any
- func DefaultMounts(dot *helmette.Dot) []corev1.VolumeMount
- func DefaultVolumes(dot *helmette.Dot) []corev1.Volume
- func FullLabels(dot *helmette.Dot) map[string]string
- func Fullname(dot *helmette.Dot) string
- func InternalDomain(dot *helmette.Dot) string
- func LoadBalancerServices(dot *helmette.Dot) []*corev1.Service
- func MonitoringEnabledLabel(dot *helmette.Dot) map[string]string
- func Name(dot *helmette.Dot) string
- func NodePortService(dot *helmette.Dot) *corev1.Service
- func Notes(dot *helmette.Dot) []string
- func ParseCLIArgs(args []string) map[string]string
- func PodDisruptionBudget(dot *helmette.Dot) *policyv1.PodDisruptionBudget
- func PostInstallUpgradeEnvironmentVariables(dot *helmette.Dot) []corev1.EnvVar
- func PostInstallUpgradeJob(dot *helmette.Dot) *batchv1.Job
- func RPKProfile(dot *helmette.Dot) *corev1.ConfigMap
- func RedpandaAdditionalStartFlags(values *Values) (bool, bool, []string)
- func RedpandaAtLeast_22_2_0(dot *helmette.Dot) bool
- func RedpandaAtLeast_22_2_atleast_22_2_10(dot *helmette.Dot) bool
- func RedpandaAtLeast_22_3_0(dot *helmette.Dot) bool
- func RedpandaAtLeast_22_3_atleast_22_3_13(dot *helmette.Dot) bool
- func RedpandaAtLeast_23_1_1(dot *helmette.Dot) bool
- func RedpandaAtLeast_23_1_2(dot *helmette.Dot) bool
- func RedpandaAtLeast_23_2_1(dot *helmette.Dot) bool
- func RedpandaAtLeast_23_3_0(dot *helmette.Dot) bool
- func RedpandaConfigFile(dot *helmette.Dot, includeNonHashableItems bool) string
- func RedpandaConfigMap(dot *helmette.Dot) *corev1.ConfigMap
- func RootCAs(dot *helmette.Dot) []*certmanagerv1.Certificate
- func RpkACLCreate(*helmette.Dot) string
- func RpkACLUserCreate(dot *helmette.Dot) string
- func RpkClusterInfo(*helmette.Dot) string
- func RpkSASLEnvironmentVariables(dot *helmette.Dot) string
- func RpkTopicCreate(dot *helmette.Dot) string
- func RpkTopicDelete(dot *helmette.Dot) string
- func RpkTopicDescribe(*helmette.Dot) string
- func SecretBootstrapUser(dot *helmette.Dot) *corev1.Secret
- func SecretConfigurator(dot *helmette.Dot) *corev1.Secret
- func SecretFSValidator(dot *helmette.Dot) *corev1.Secret
- func SecretSASLUsers(dot *helmette.Dot) *corev1.Secret
- func SecretSTSLifecycle(dot *helmette.Dot) *corev1.Secret
- func Secrets(dot *helmette.Dot) []*corev1.Secret
- func ServerList(replicas int32, prefix, fullname, internalDomain string, port int32) []string
- func ServiceAccount(dot *helmette.Dot) *corev1.ServiceAccount
- func ServiceAccountName(dot *helmette.Dot) string
- func ServiceInternal(dot *helmette.Dot) *corev1.Service
- func ServiceMonitor(dot *helmette.Dot) *monitoringv1.ServiceMonitor
- func ServiceName(dot *helmette.Dot) string
- func SidecarControllersClusterRole(dot *helmette.Dot) *rbacv1.ClusterRole
- func SidecarControllersClusterRoleBinding(dot *helmette.Dot) *rbacv1.ClusterRoleBinding
- func SidecarControllersRole(dot *helmette.Dot) *rbacv1.Role
- func SidecarControllersRoleBinding(dot *helmette.Dot) *rbacv1.RoleBinding
- func StatefulSet(dot *helmette.Dot) *appsv1.StatefulSet
- func StatefulSetContainers(dot *helmette.Dot) []corev1.Container
- func StatefulSetInitContainers(dot *helmette.Dot) []corev1.Container
- func StatefulSetPodLabels(dot *helmette.Dot) map[string]string
- func StatefulSetPodLabelsSelector(dot *helmette.Dot) map[string]string
- func StatefulSetVolumeMounts(dot *helmette.Dot) []corev1.VolumeMount
- func StatefulSetVolumes(dot *helmette.Dot) []corev1.Volume
- func StorageTieredConfig(dot *helmette.Dot) map[string]any
- func StrategicMergePatch(overrides PodTemplate, original corev1.PodTemplateSpec) corev1.PodTemplateSpec
- func StructuredTpl[T any](dot *helmette.Dot, in T) T
- func TLSEnabled(dot *helmette.Dot) bool
- func Tag(dot *helmette.Dot) string
- func Types() []kube.Object
- func Warnings(dot *helmette.Dot) []string
- type AdminExternal
- type AdminListeners
- type AuditLogging
- type Auth
- type BootstrapUser
- func (b *BootstrapUser) BootstrapEnvironment(fullname string) []corev1.EnvVar
- func (b *BootstrapUser) GetMechanism() SASLMechanism
- func (b *BootstrapUser) RpkEnvironment(fullname string) []corev1.EnvVar
- func (b *BootstrapUser) SecretKeySelector(fullname string) *corev1.SecretKeySelector
- func (b *BootstrapUser) Username() string
- type ClusterConfig
- type Config
- type ConsoleTLS
- type Enableable
- type Enterprise
- type ExternalConfig
- type ExternalListeners
- type ExternalTLS
- type HTTPAuthenticationMethod
- type HTTPExternal
- type HTTPListeners
- type Image
- type ImageTag
- type InternalTLS
- type IssuerRefKind
- type KafkaAuthenticationMethod
- type KafkaExternal
- type KafkaListeners
- func (l *KafkaListeners) ConsoleTLS(tls *TLS) ConsoleTLS
- func (KafkaListeners) JSONSchemaExtend(schema *jsonschema.Schema)
- func (l *KafkaListeners) Listeners(auth *Auth) []map[string]any
- func (l *KafkaListeners) ListenersTLS(tls *TLS) []map[string]any
- func (l *KafkaListeners) TrustStores(tls *TLS) []*TrustStore
- type Listeners
- func (l *Listeners) AdminList(replicas int32, fullname, internalDomain string) []string
- func (l *Listeners) CreateSeedServers(replicas int32, fullname, internalDomain string) []map[string]any
- func (l *Listeners) SchemaRegistryList(replicas int32, fullname, internalDomain string) []string
- func (l *Listeners) TrustStoreVolume(tls *TLS) *corev1.Volume
- func (l *Listeners) TrustStores(tls *TLS) []*TrustStore
- type Logging
- type MebiBytes
- type Monitoring
- type NodeConfig
- type PandaProxyClient
- type PartialAdminExternal
- type PartialAdminListeners
- type PartialAuditLogging
- type PartialAuth
- type PartialBootstrapUser
- type PartialClusterConfig
- type PartialConfig
- type PartialEnableable
- type PartialEnterprise
- type PartialExternalConfig
- type PartialExternalListeners
- type PartialExternalTLS
- type PartialHTTPExternal
- type PartialHTTPListeners
- type PartialImage
- type PartialInternalTLS
- type PartialKafkaExternal
- type PartialKafkaListeners
- type PartialListeners
- type PartialLogging
- type PartialMonitoring
- type PartialNodeConfig
- type PartialPandaProxyClient
- type PartialPodTemplate
- type PartialPostInstallJob
- type PartialRBAC
- type PartialRackAwareness
- type PartialRedpandaResources
- type PartialSASLAuth
- type PartialSASLUser
- type PartialSchemaRegistryClient
- type PartialSchemaRegistryExternal
- type PartialSchemaRegistryListeners
- type PartialSecretRef
- type PartialService
- type PartialServiceAccountCfg
- type PartialSidecars
- type PartialStatefulset
- type PartialStorage
- type PartialTLS
- type PartialTLSCert
- type PartialTLSCertMap
- type PartialTiered
- type PartialTieredStorageConfig
- type PartialTieredStorageCredentials
- type PartialTrustStore
- type PartialTunableConfig
- type PartialTuning
- type PartialValues
- type PodTemplate
- type PostInstallJob
- type RBAC
- type RackAwareness
- type RedpandaResources
- type ResourceQuantity
- type SASLAuth
- type SASLMechanism
- type SASLUser
- type SchemaRegistryClient
- type SchemaRegistryExternal
- type SchemaRegistryListeners
- func (l *SchemaRegistryListeners) ConsoleTLS(tls *TLS) ConsoleTLS
- func (SchemaRegistryListeners) JSONSchemaExtend(schema *jsonschema.Schema)
- func (l *SchemaRegistryListeners) Listeners(saslEnabled bool) []map[string]any
- func (l *SchemaRegistryListeners) ListenersTLS(tls *TLS) []map[string]any
- func (l *SchemaRegistryListeners) TrustStores(tls *TLS) []*TrustStore
- type SecretRef
- type Service
- type ServiceAccountCfg
- type Sidecars
- type Statefulset
- type Storage
- func (s *Storage) GetTieredStorageConfig() TieredStorageConfig
- func (s *Storage) GetTieredStorageHostPath() string
- func (s *Storage) IsTieredStorageEnabled() bool
- func (Storage) JSONSchemaExtend(schema *jsonschema.Schema)
- func (s *Storage) StorageMinFreeBytes() int64
- func (s *Storage) TieredCacheDirectory(dot *helmette.Dot) string
- func (s *Storage) TieredMountType() string
- func (s *Storage) TieredPersistentVolumeAnnotations() map[string]string
- func (s *Storage) TieredPersistentVolumeLabels() map[string]string
- func (s *Storage) TieredPersistentVolumeStorageClass() string
- type TLS
- type TLSCert
- type TLSCertMap
- type Tiered
- type TieredStorageConfig
- type TieredStorageCredentials
- type TrustStore
- type TunableConfig
- type Tuning
- type Values
Constants ¶
const ( // TrustStoreMountPath is the absolute path at which the // [corev1.VolumeProjection] of truststores will be mounted to the redpanda // container. (Without a trailing slash) TrustStoreMountPath = "/etc/truststores" // ServiceAccountVolumeName is the prefix name that will be added to volumes that mount ServiceAccount secrets // Reference // https://github.com/kubernetes/kubernetes/blob/c6669ea7d61af98da3a2aa8c1d2cdc9c2c57080a/plugin/pkg/admission/serviceaccount/admission.go#L52-L53 ServiceAccountVolumeName = "kube-api-access" // DefaultAPITokenMountPath is the path that ServiceAccountToken secrets are automounted to. // The token file would then be accessible at /var/run/secrets/kubernetes.io/serviceaccount // Reference // https://github.com/kubernetes/kubernetes/blob/c6669ea7d61af98da3a2aa8c1d2cdc9c2c57080a/plugin/pkg/admission/serviceaccount/admission.go#L55-L57 //nolint:gosec DefaultAPITokenMountPath = "/var/run/secrets/kubernetes.io/serviceaccount" )
const ( // RedpandaContainerName is the user facing name of the redpanda container // in the redpanda StatefulSet. RedpandaContainerName = "redpanda" // PostUpgradeContainerName is the user facing name of the post-install // job's container. PostInstallContainerName = "post-install" // RedpandaControllersContainerName is the container that can perform day // 2 operation similarly to Redpanda operator. RedpandaControllersContainerName = "redpanda-controllers" // RedpandaConfiguratorContainerName is the user facing name of the // redpanda-configurator init container in the redpanda StatefulSet. RedpandaConfiguratorContainerName = "redpanda-configurator" )
const DefaultSASLMechanism = SASLMechanism("SCRAM-SHA-512")
Variables ¶
var ( // Scheme is a [runtime.Scheme] with the appropriate extensions to load all // objects produced by the redpanda chart. Scheme = runtime.NewScheme() //go:embed Chart.lock //go:embed Chart.yaml //go:embed templates/* //go:embed values.schema.json //go:embed values.yaml ChartFiles embed.FS // Chart is the go version of the redpanda helm chart. Chart = gotohelm.MustLoad(ChartFiles, render, console.Chart) )
Functions ¶
func BootstrapFile ¶
BootstrapFile returns contents of `.bootstrap.yaml`. Keys that may be set via environment variables (such as tiered storage secrets) will have placeholders in the form of $ENVVARNAME. An init container is responsible for expanding said placeholders.
Convention is to name envvars $REDPANDA_SCREAMING_CASE_CLUSTER_PROPERTY_NAME. For example, cloud_storage_secret_key would be $REDPANDA_CLOUD_STORAGE_SECRET_KEY.
`.bootstrap.yaml` is templated and then read by both the redpanda container and the post install/upgrade job.
func CertIssuers ¶
func CertIssuers(dot *helmette.Dot) []*certmanagerv1.Issuer
func CertSecretName ¶
return correct secretName to use based if secretRef exists
func ChartLabel ¶
Create chart name and version as used by the chart label.
func ClientAuthRequired ¶
func ClientCerts ¶
func ClientCerts(dot *helmette.Dot) []*certmanagerv1.Certificate
func ClusterRoleBindings ¶
func ClusterRoleBindings(dot *helmette.Dot) []*rbacv1.ClusterRoleBinding
func ClusterRoles ¶
func ClusterRoles(dot *helmette.Dot) []*rbacv1.ClusterRole
func CommonMounts ¶
func CommonMounts(dot *helmette.Dot) []corev1.VolumeMount
mounts that are common to all containers
func CommonVolumes ¶
volumes that are common to all pods
func DefaultMounts ¶
func DefaultMounts(dot *helmette.Dot) []corev1.VolumeMount
mounts that are common to most containers
func FullLabels ¶
full helm labels + common labels
func Fullname ¶
Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
func ParseCLIArgs ¶
ParseCLIArgs parses a slice of strings intended for rpk's `additional_start_flags` field into a map to allow merging slices of flags or introspection thereof. Flags without values are not differentiated between flags with values of an empty string. e.g. --value and --value=” are represented the same way.
func PodDisruptionBudget ¶
func PodDisruptionBudget(dot *helmette.Dot) *policyv1.PodDisruptionBudget
func PostInstallUpgradeEnvironmentVariables ¶
PostInstallUpgradeEnvironmentVariables returns environment variables assigned to Redpanda container.
func RPKProfile ¶
RPKProfile returns a corev1.ConfigMap for aiding users in connecting to the external listeners of their redpanda cluster. It is meant for external consumption via NOTES.txt and is not used within this chart.
func RedpandaAdditionalStartFlags ¶
RedpandaAdditionalStartFlags returns a string slice of flags suitable for use as `additional_start_flags`. User provided flags will override any of those set by default.
func RedpandaAtLeast_22_2_0 ¶
func RedpandaAtLeast_22_3_0 ¶
func RedpandaAtLeast_23_1_1 ¶
func RedpandaAtLeast_23_1_2 ¶
func RedpandaAtLeast_23_2_1 ¶
func RedpandaAtLeast_23_3_0 ¶
func RedpandaConfigFile ¶
func RootCAs ¶
func RootCAs(dot *helmette.Dot) []*certmanagerv1.Certificate
func RpkACLCreate ¶
func RpkACLUserCreate ¶
func RpkClusterInfo ¶
func RpkSASLEnvironmentVariables ¶
was: rpk sasl environment variables
This will return a string with the correct environment variables to use for SASL based on the version of the redpanda container being used
func RpkTopicCreate ¶
func RpkTopicDelete ¶
func RpkTopicDescribe ¶
func ServerList ¶
func ServiceAccount ¶
func ServiceAccount(dot *helmette.Dot) *corev1.ServiceAccount
func ServiceAccountName ¶
Create the name of the service account to use
func ServiceMonitor ¶
func ServiceMonitor(dot *helmette.Dot) *monitoringv1.ServiceMonitor
func SidecarControllersClusterRole ¶
func SidecarControllersClusterRole(dot *helmette.Dot) *rbacv1.ClusterRole
func SidecarControllersClusterRoleBinding ¶
func SidecarControllersClusterRoleBinding(dot *helmette.Dot) *rbacv1.ClusterRoleBinding
func SidecarControllersRoleBinding ¶
func SidecarControllersRoleBinding(dot *helmette.Dot) *rbacv1.RoleBinding
func StatefulSet ¶
func StatefulSet(dot *helmette.Dot) *appsv1.StatefulSet
func StatefulSetPodLabels ¶
StatefulSetPodLabels returns the label that includes label selector for the Redpanda PodTemplate. If this helm release is an upgrade, the existing statefulset's pod template labels will be used as it's an immutable field.
func StatefulSetPodLabelsSelector ¶
StatefulSetPodLabelsSelector returns the label selector for the Redpanda StatefulSet. If this helm release is an upgrade, the existing statefulset's label selector will be used as it's an immutable field.
func StatefulSetVolumeMounts ¶
func StatefulSetVolumeMounts(dot *helmette.Dot) []corev1.VolumeMount
StatefulSetRedpandaMounts returns the VolumeMounts for the Redpanda Container of the Redpanda StatefulSet.
func StatefulSetVolumes ¶
StatefulSetVolumes returns the [corev1.Volume]s for the Redpanda StatefulSet.
func StorageTieredConfig ¶
StorageTieredConfig was: storage-tiered-config Wrap this up since there are helm tests that require it
func StrategicMergePatch ¶
func StrategicMergePatch(overrides PodTemplate, original corev1.PodTemplateSpec) corev1.PodTemplateSpec
StrategicMergePatch is a half-baked implementation of Kubernetes' strategic merge patch. It's closer to a merge patch with smart handling of lists that's tailored to the values permitted by PodTemplate.
func StructuredTpl ¶
StructuredTpl (inefficiently) recurses through all fields of T and expands any string fields containing template delimiters with helmette.Tpl.
func TLSEnabled ¶
check if client auth is enabled for any of the listeners
func Types ¶
Types returns a slice containing the set of all kube.Object types that could be returned by the redpanda chart. +gotohelm:ignore=true
Types ¶
type AdminExternal ¶
type AdminExternal struct { // Enabled indicates if this listener is enabled. If not specified, // defaults to the value of [ExternalConfig.Enabled]. Enabled *bool `json:"enabled"` AdvertisedPorts []int32 `json:"advertisedPorts" jsonschema:"minItems=1"` Port int32 `json:"port" jsonschema:"required"` NodePort *int32 `json:"nodePort"` TLS *ExternalTLS `json:"tls"` }
func (*AdminExternal) IsEnabled ¶
func (l *AdminExternal) IsEnabled() bool
type AdminListeners ¶
type AdminListeners struct { External ExternalListeners[AdminExternal] `json:"external"` Port int32 `json:"port" jsonschema:"required"` AppProtocol *string `json:"appProtocol,omitempty"` TLS InternalTLS `json:"tls" jsonschema:"required"` }
func (*AdminListeners) ConsoleTLS ¶
func (l *AdminListeners) ConsoleTLS(tls *TLS) ConsoleTLS
func (*AdminListeners) Listeners ¶
func (l *AdminListeners) Listeners() []map[string]any
func (*AdminListeners) ListenersTLS ¶
func (l *AdminListeners) ListenersTLS(tls *TLS) []map[string]any
func (*AdminListeners) TrustStores ¶
func (l *AdminListeners) TrustStores(tls *TLS) []*TrustStore
TrustStores returns a slice of all configured and enabled [TrustStore]s on both internal and external listeners.
type AuditLogging ¶
type AuditLogging struct { Enabled bool `json:"enabled"` Listener string `json:"listener"` Partitions int `json:"partitions"` EnabledEventTypes []string `json:"enabledEventTypes"` ExcludedTopics []string `json:"excludedTopics"` ExcludedPrincipals []string `json:"excludedPrincipals"` ClientMaxBufferSize int `json:"clientMaxBufferSize"` QueueDrainIntervalMS int `json:"queueDrainIntervalMs"` QueueMaxBufferSizeperShard int `json:"queueMaxBufferSizePerShard"` ReplicationFactor int `json:"replicationFactor"` }
func (AuditLogging) JSONSchemaExtend ¶
func (AuditLogging) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
type Auth ¶
type Auth struct {
SASL *SASLAuth `json:"sasl" jsonschema:"required"`
}
func (*Auth) IsSASLEnabled ¶
type BootstrapUser ¶
type BootstrapUser struct { Name *string `json:"name"` SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef"` Password *string `json:"password"` Mechanism SASLMechanism `json:"mechanism"` }
func (*BootstrapUser) BootstrapEnvironment ¶
func (b *BootstrapUser) BootstrapEnvironment(fullname string) []corev1.EnvVar
func (*BootstrapUser) GetMechanism ¶
func (b *BootstrapUser) GetMechanism() SASLMechanism
func (*BootstrapUser) RpkEnvironment ¶
func (b *BootstrapUser) RpkEnvironment(fullname string) []corev1.EnvVar
func (*BootstrapUser) SecretKeySelector ¶
func (b *BootstrapUser) SecretKeySelector(fullname string) *corev1.SecretKeySelector
func (*BootstrapUser) Username ¶
func (b *BootstrapUser) Username() string
type ClusterConfig ¶
func (*ClusterConfig) Translate ¶
func (c *ClusterConfig) Translate() map[string]any
type Config ¶
type Config struct { Cluster ClusterConfig `json:"cluster" jsonschema:"required"` Node NodeConfig `json:"node" jsonschema:"required"` RPK map[string]any `json:"rpk"` SchemaRegistryClient *SchemaRegistryClient `json:"schema_registry_client"` PandaProxyClient *PandaProxyClient `json:"pandaproxy_client"` Tunable TunableConfig `json:"tunable" jsonschema:"required"` }
func (*Config) CreateRPKConfiguration ¶
type ConsoleTLS ¶
type ConsoleTLS struct { Enabled bool `json:"enabled"` CaFilepath string `json:"caFilepath"` CertFilepath string `json:"certFilepath"` KeyFilepath string `json:"keyFilepath"` InsecureSkipTLSVerify bool `json:"insecureSkipTlsVerify"` }
ConsoleTLS is a struct that represents TLS configuration used in console configuration in Kafka, Schema Registry and Redpanda Admin API. For the above configuration helm chart could import struct, but as of the writing the struct fields tag have only `yaml` annotation. `sigs.k8s.io/yaml` requires `json` tags.
type Enableable ¶
type Enableable struct {
Enabled bool `json:"enabled" jsonschema:"required"`
}
type Enterprise ¶
type Enterprise struct { License string `json:"license"` LicenseSecretRef *corev1.SecretKeySelector `json:"licenseSecretRef,omitempty"` }
func (Enterprise) JSONSchemaExtend ¶
func (Enterprise) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
type ExternalConfig ¶
type ExternalConfig struct { Addresses []string `json:"addresses"` Annotations map[string]string `json:"annotations"` Domain *string `json:"domain"` Enabled bool `json:"enabled" jsonschema:"required"` Type corev1.ServiceType `json:"type" jsonschema:"pattern=^(LoadBalancer|NodePort)$"` PrefixTemplate string `json:"prefixTemplate"` SourceRanges []string `json:"sourceRanges"` Service Enableable `json:"service"` ExternalDNS *Enableable `json:"externalDns"` }
type ExternalListeners ¶
func (ExternalListeners[T]) JSONSchemaExtend ¶
func (ExternalListeners[T]) JSONSchemaExtend(schema *jsonschema.Schema)
type ExternalTLS ¶
type ExternalTLS struct { // Enabled, when `false`, indicates that this struct should treated as if // it was not specified. If `nil`, defaults to [InternalTLS.Enabled]. // Prefer to use `IsEnabled` rather than checking this field directly. Enabled *bool `json:"enabled"` Cert *string `json:"cert"` RequireClientAuth *bool `json:"requireClientAuth"` TrustStore *TrustStore `json:"trustStore"` }
ExternalTLS is the TLS configuration associated with a given "external" listener. The schema is more loose than InternalTLS. All fields have default values but are interpreted differently depending on their context (IE kafka vs schemaRegistry) tread lightly.
func (*ExternalTLS) GetCert ¶
func (t *ExternalTLS) GetCert(i *InternalTLS, tls *TLS) *TLSCert
func (*ExternalTLS) GetCertName ¶
func (t *ExternalTLS) GetCertName(i *InternalTLS) string
func (*ExternalTLS) IsEnabled ¶
func (t *ExternalTLS) IsEnabled(i *InternalTLS, tls *TLS) bool
IsEnabled reports the value of [ExternalTLS.Enabled], falling back to InternalTLS.IsEnabled if not specified.
func (*ExternalTLS) TrustStoreFilePath ¶
func (t *ExternalTLS) TrustStoreFilePath(i *InternalTLS, tls *TLS) string
type HTTPAuthenticationMethod ¶
type HTTPAuthenticationMethod string
func (HTTPAuthenticationMethod) JSONSchemaExtend ¶
func (HTTPAuthenticationMethod) JSONSchemaExtend(s *jsonschema.Schema)
type HTTPExternal ¶
type HTTPExternal struct { // Enabled indicates if this listener is enabled. If not specified, // defaults to the value of [ExternalConfig.Enabled]. Enabled *bool `json:"enabled"` AdvertisedPorts []int32 `json:"advertisedPorts" jsonschema:"minItems=1"` Port int32 `json:"port" jsonschema:"required"` NodePort *int32 `json:"nodePort"` AuthenticationMethod *HTTPAuthenticationMethod `json:"authenticationMethod"` PrefixTemplate *string `json:"prefixTemplate"` TLS *ExternalTLS `json:"tls" jsonschema:"required"` }
func (*HTTPExternal) IsEnabled ¶
func (l *HTTPExternal) IsEnabled() bool
func (HTTPExternal) JSONSchemaExtend ¶
func (HTTPExternal) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
type HTTPListeners ¶
type HTTPListeners struct { Enabled bool `json:"enabled" jsonschema:"required"` External ExternalListeners[HTTPExternal] `json:"external"` AuthenticationMethod *HTTPAuthenticationMethod `json:"authenticationMethod"` TLS InternalTLS `json:"tls" jsonschema:"required"` KafkaEndpoint string `json:"kafkaEndpoint" jsonschema:"required,pattern=^[A-Za-z_-][A-Za-z0-9_-]*$"` Port int32 `json:"port" jsonschema:"required"` }
func (HTTPListeners) JSONSchemaExtend ¶
func (HTTPListeners) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (*HTTPListeners) Listeners ¶
func (l *HTTPListeners) Listeners(saslEnabled bool) []map[string]any
func (*HTTPListeners) ListenersTLS ¶
func (l *HTTPListeners) ListenersTLS(tls *TLS) []map[string]any
func (*HTTPListeners) TrustStores ¶
func (l *HTTPListeners) TrustStores(tls *TLS) []*TrustStore
TrustStores returns a slice of all configured and enabled [TrustStore]s on both internal and external listeners.
type Image ¶
type Image struct { Repository string `json:"repository" jsonschema:"required,default=docker.redpanda.com/redpandadata/redpanda"` Tag ImageTag `json:"tag" jsonschema:"default=Chart.appVersion"` PullPolicy corev1.PullPolicy `json:"pullPolicy" jsonschema:"required"` }
func (Image) JSONSchemaExtend ¶
func (Image) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
type ImageTag ¶
type ImageTag string
func (ImageTag) JSONSchemaExtend ¶
func (ImageTag) JSONSchemaExtend(schema *jsonschema.Schema)
type InternalTLS ¶
type InternalTLS struct { Enabled *bool `json:"enabled"` Cert string `json:"cert" jsonschema:"required"` RequireClientAuth bool `json:"requireClientAuth" jsonschema:"required"` TrustStore *TrustStore `json:"trustStore"` }
InternalTLS is the TLS configuration for "internal" listeners. Internal listeners all have default values specified within values.yaml which allows us to be more strict about the schema here. TODO Unify this struct with ExternalTLS and/or remove the concept of internal and external listeners all together.
func (*InternalTLS) IsEnabled ¶
func (t *InternalTLS) IsEnabled(tls *TLS) bool
IsEnabled reports the value of [InternalTLS.Enabled], falling back to [TLS.Enabled] if not specified.
func (*InternalTLS) ServerCAPath ¶
func (t *InternalTLS) ServerCAPath(tls *TLS) string
ServerCAPath returns the path on disk to a certificate that may be used to verify a connection with this server.
func (*InternalTLS) TrustStoreFilePath ¶
func (t *InternalTLS) TrustStoreFilePath(tls *TLS) string
type IssuerRefKind ¶
type IssuerRefKind string
func (IssuerRefKind) JSONSchemaExtend ¶
func (IssuerRefKind) JSONSchemaExtend(schema *jsonschema.Schema)
type KafkaAuthenticationMethod ¶
type KafkaAuthenticationMethod string
func (KafkaAuthenticationMethod) JSONSchemaExtend ¶
func (KafkaAuthenticationMethod) JSONSchemaExtend(s *jsonschema.Schema)
type KafkaExternal ¶
type KafkaExternal struct { // Enabled indicates if this listener is enabled. If not specified, // defaults to the value of [ExternalConfig.Enabled]. Enabled *bool `json:"enabled"` AdvertisedPorts []int32 `json:"advertisedPorts" jsonschema:"minItems=1"` Port int32 `json:"port" jsonschema:"required"` // TODO CHECK NODE PORT USAGE NodePort *int32 `json:"nodePort"` AuthenticationMethod *KafkaAuthenticationMethod `json:"authenticationMethod"` PrefixTemplate *string `json:"prefixTemplate"` TLS *ExternalTLS `json:"tls"` }
func (*KafkaExternal) IsEnabled ¶
func (l *KafkaExternal) IsEnabled() bool
func (KafkaExternal) JSONSchemaExtend ¶
func (KafkaExternal) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
type KafkaListeners ¶
type KafkaListeners struct { AuthenticationMethod *KafkaAuthenticationMethod `json:"authenticationMethod"` External ExternalListeners[KafkaExternal] `json:"external"` TLS InternalTLS `json:"tls" jsonschema:"required"` Port int32 `json:"port" jsonschema:"required"` }
func (*KafkaListeners) ConsoleTLS ¶
func (l *KafkaListeners) ConsoleTLS(tls *TLS) ConsoleTLS
func (KafkaListeners) JSONSchemaExtend ¶
func (KafkaListeners) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (*KafkaListeners) Listeners ¶
func (l *KafkaListeners) Listeners(auth *Auth) []map[string]any
Listeners returns a slice of maps suitable for use as the value of `kafka_api` in a redpanda.yml file.
func (*KafkaListeners) ListenersTLS ¶
func (l *KafkaListeners) ListenersTLS(tls *TLS) []map[string]any
ListenersTLS returns a slice of maps suitable for use as the value of `kafka_api_tls` in a redpanda.yml file.
func (*KafkaListeners) TrustStores ¶
func (l *KafkaListeners) TrustStores(tls *TLS) []*TrustStore
TrustStores returns a slice of all configured and enabled [TrustStore]s on both internal and external listeners.
type Listeners ¶
type Listeners struct { Admin AdminListeners `json:"admin" jsonschema:"required"` HTTP HTTPListeners `json:"http" jsonschema:"required"` Kafka KafkaListeners `json:"kafka" jsonschema:"required"` SchemaRegistry SchemaRegistryListeners `json:"schemaRegistry" jsonschema:"required"` RPC struct { Port int32 `json:"port" jsonschema:"required"` TLS InternalTLS `json:"tls" jsonschema:"required"` } `json:"rpc" jsonschema:"required"` }
func (*Listeners) CreateSeedServers ¶
func (*Listeners) SchemaRegistryList ¶
func (*Listeners) TrustStoreVolume ¶
TrustStoreVolume returns a corev1.Volume containing a projected volume that mounts all required truststore files. If no truststores are configured, it returns nil.
func (*Listeners) TrustStores ¶
func (l *Listeners) TrustStores(tls *TLS) []*TrustStore
TrustStores returns an aggregate slice of all "active" [TrustStore]s across all listeners.
type Logging ¶
type Monitoring ¶
type Monitoring struct { Enabled bool `json:"enabled" jsonschema:"required"` ScrapeInterval monitoringv1.Duration `json:"scrapeInterval" jsonschema:"required"` Labels map[string]string `json:"labels"` TLSConfig *monitoringv1.TLSConfig `json:"tlsConfig"` EnableHTTP2 *bool `json:"enableHttp2"` }
type NodeConfig ¶
func (*NodeConfig) Translate ¶
func (c *NodeConfig) Translate() map[string]any
type PandaProxyClient ¶
type PandaProxyClient struct { Retries int `json:"retries"` RetryBaseBackoffMS int `json:"retry_base_backoff_ms"` ProduceBatchRecordCount int `json:"produce_batch_record_count"` ProduceBatchSizeBytes int `json:"produce_batch_size_bytes"` ProduceBatchDelayMS int `json:"produce_batch_delay_ms"` ConsumerRequestTimeoutMS int `json:"consumer_request_timeout_ms"` ConsumerRequestMaxBytes int `json:"consumer_request_max_bytes"` ConsumerSessionTimeoutMS int `json:"consumer_session_timeout_ms"` ConsumerRebalanceTimeoutMS int `json:"consumer_rebalance_timeout_ms"` ConsumerHeartbeatIntervalMS int `json:"consumer_heartbeat_interval_ms"` }
type PartialAdminExternal ¶
type PartialAdminExternal struct { Enabled *bool "json:\"enabled,omitempty\"" AdvertisedPorts []int32 "json:\"advertisedPorts,omitempty\" jsonschema:\"minItems=1\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" NodePort *int32 "json:\"nodePort,omitempty\"" TLS *PartialExternalTLS "json:\"tls,omitempty\"" }
type PartialAdminListeners ¶
type PartialAdminListeners struct { External PartialExternalListeners[PartialAdminExternal] "json:\"external,omitempty\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" AppProtocol *string "json:\"appProtocol,omitempty\"" TLS *PartialInternalTLS "json:\"tls,omitempty\" jsonschema:\"required\"" }
type PartialAuditLogging ¶
type PartialAuditLogging struct { Enabled *bool "json:\"enabled,omitempty\"" Listener *string "json:\"listener,omitempty\"" Partitions *int "json:\"partitions,omitempty\"" EnabledEventTypes []string "json:\"enabledEventTypes,omitempty\"" ExcludedTopics []string "json:\"excludedTopics,omitempty\"" ExcludedPrincipals []string "json:\"excludedPrincipals,omitempty\"" ClientMaxBufferSize *int "json:\"clientMaxBufferSize,omitempty\"" QueueDrainIntervalMS *int "json:\"queueDrainIntervalMs,omitempty\"" QueueMaxBufferSizeperShard *int "json:\"queueMaxBufferSizePerShard,omitempty\"" ReplicationFactor *int "json:\"replicationFactor,omitempty\"" }
type PartialAuth ¶
type PartialAuth struct {
SASL *PartialSASLAuth "json:\"sasl,omitempty\" jsonschema:\"required\""
}
type PartialBootstrapUser ¶
type PartialBootstrapUser struct { Name *string "json:\"name,omitempty\"" SecretKeyRef *corev1.SecretKeySelector "json:\"secretKeyRef,omitempty\"" Password *string "json:\"password,omitempty\"" Mechanism *SASLMechanism "json:\"mechanism,omitempty\"" }
type PartialClusterConfig ¶
type PartialConfig ¶
type PartialConfig struct { Cluster PartialClusterConfig "json:\"cluster,omitempty\" jsonschema:\"required\"" Node PartialNodeConfig "json:\"node,omitempty\" jsonschema:\"required\"" RPK map[string]any "json:\"rpk,omitempty\"" SchemaRegistryClient *PartialSchemaRegistryClient "json:\"schema_registry_client,omitempty\"" PandaProxyClient *PartialPandaProxyClient "json:\"pandaproxy_client,omitempty\"" Tunable PartialTunableConfig "json:\"tunable,omitempty\" jsonschema:\"required\"" }
type PartialEnableable ¶
type PartialEnableable struct {
Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\""
}
type PartialEnterprise ¶
type PartialEnterprise struct { License *string "json:\"license,omitempty\"" LicenseSecretRef *corev1.SecretKeySelector "json:\"licenseSecretRef,omitempty\"" }
type PartialExternalConfig ¶
type PartialExternalConfig struct { Addresses []string "json:\"addresses,omitempty\"" Annotations map[string]string "json:\"annotations,omitempty\"" Domain *string "json:\"domain,omitempty\"" Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" Type *corev1.ServiceType "json:\"type,omitempty\" jsonschema:\"pattern=^(LoadBalancer|NodePort)$\"" PrefixTemplate *string "json:\"prefixTemplate,omitempty\"" SourceRanges []string "json:\"sourceRanges,omitempty\"" Service *PartialEnableable "json:\"service,omitempty\"" ExternalDNS *PartialEnableable "json:\"externalDns,omitempty\"" }
type PartialExternalTLS ¶
type PartialExternalTLS struct { Enabled *bool "json:\"enabled,omitempty\"" Cert *string "json:\"cert,omitempty\"" RequireClientAuth *bool "json:\"requireClientAuth,omitempty\"" TrustStore *PartialTrustStore "json:\"trustStore,omitempty\"" }
type PartialHTTPExternal ¶
type PartialHTTPExternal struct { Enabled *bool "json:\"enabled,omitempty\"" AdvertisedPorts []int32 "json:\"advertisedPorts,omitempty\" jsonschema:\"minItems=1\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" NodePort *int32 "json:\"nodePort,omitempty\"" AuthenticationMethod *HTTPAuthenticationMethod "json:\"authenticationMethod,omitempty\"" PrefixTemplate *string "json:\"prefixTemplate,omitempty\"" TLS *PartialExternalTLS "json:\"tls,omitempty\" jsonschema:\"required\"" }
type PartialHTTPListeners ¶
type PartialHTTPListeners struct { Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" External PartialExternalListeners[PartialHTTPExternal] "json:\"external,omitempty\"" AuthenticationMethod *HTTPAuthenticationMethod "json:\"authenticationMethod,omitempty\"" TLS *PartialInternalTLS "json:\"tls,omitempty\" jsonschema:\"required\"" KafkaEndpoint *string "json:\"kafkaEndpoint,omitempty\" jsonschema:\"required,pattern=^[A-Za-z_-][A-Za-z0-9_-]*$\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" }
type PartialImage ¶
type PartialImage struct { Repository *string "json:\"repository,omitempty\" jsonschema:\"required,default=docker.redpanda.com/redpandadata/redpanda\"" Tag *ImageTag "json:\"tag,omitempty\" jsonschema:\"default=Chart.appVersion\"" PullPolicy *corev1.PullPolicy "json:\"pullPolicy,omitempty\" jsonschema:\"required\"" }
type PartialInternalTLS ¶
type PartialInternalTLS struct { Enabled *bool "json:\"enabled,omitempty\"" Cert *string "json:\"cert,omitempty\" jsonschema:\"required\"" RequireClientAuth *bool "json:\"requireClientAuth,omitempty\" jsonschema:\"required\"" TrustStore *PartialTrustStore "json:\"trustStore,omitempty\"" }
type PartialKafkaExternal ¶
type PartialKafkaExternal struct { Enabled *bool "json:\"enabled,omitempty\"" AdvertisedPorts []int32 "json:\"advertisedPorts,omitempty\" jsonschema:\"minItems=1\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" NodePort *int32 "json:\"nodePort,omitempty\"" AuthenticationMethod *KafkaAuthenticationMethod "json:\"authenticationMethod,omitempty\"" PrefixTemplate *string "json:\"prefixTemplate,omitempty\"" TLS *PartialExternalTLS "json:\"tls,omitempty\"" }
type PartialKafkaListeners ¶
type PartialKafkaListeners struct { AuthenticationMethod *KafkaAuthenticationMethod "json:\"authenticationMethod,omitempty\"" External PartialExternalListeners[PartialKafkaExternal] "json:\"external,omitempty\"" TLS *PartialInternalTLS "json:\"tls,omitempty\" jsonschema:\"required\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" }
type PartialListeners ¶
type PartialListeners struct { Admin *PartialAdminListeners "json:\"admin,omitempty\" jsonschema:\"required\"" HTTP *PartialHTTPListeners "json:\"http,omitempty\" jsonschema:\"required\"" Kafka *PartialKafkaListeners "json:\"kafka,omitempty\" jsonschema:\"required\"" SchemaRegistry *PartialSchemaRegistryListeners "json:\"schemaRegistry,omitempty\" jsonschema:\"required\"" RPC *struct { Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" TLS *PartialInternalTLS "json:\"tls,omitempty\" jsonschema:\"required\"" } "json:\"rpc,omitempty\" jsonschema:\"required\"" }
type PartialLogging ¶
type PartialLogging struct { LogLevel *string "json:\"logLevel,omitempty\" jsonschema:\"required,pattern=^(error|warn|info|debug|trace)$\"" UseageStats *struct { Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" ClusterID *string "json:\"clusterId,omitempty\"" } "json:\"usageStats,omitempty\" jsonschema:\"required\"" }
type PartialMonitoring ¶
type PartialMonitoring struct { Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" ScrapeInterval *monitoringv1.Duration "json:\"scrapeInterval,omitempty\" jsonschema:\"required\"" Labels map[string]string "json:\"labels,omitempty\"" TLSConfig *monitoringv1.TLSConfig "json:\"tlsConfig,omitempty\"" EnableHTTP2 *bool "json:\"enableHttp2,omitempty\"" }
type PartialNodeConfig ¶
type PartialPandaProxyClient ¶
type PartialPandaProxyClient struct { Retries *int "json:\"retries,omitempty\"" RetryBaseBackoffMS *int "json:\"retry_base_backoff_ms,omitempty\"" ProduceBatchRecordCount *int "json:\"produce_batch_record_count,omitempty\"" ProduceBatchSizeBytes *int "json:\"produce_batch_size_bytes,omitempty\"" ProduceBatchDelayMS *int "json:\"produce_batch_delay_ms,omitempty\"" ConsumerRequestTimeoutMS *int "json:\"consumer_request_timeout_ms,omitempty\"" ConsumerRequestMaxBytes *int "json:\"consumer_request_max_bytes,omitempty\"" ConsumerSessionTimeoutMS *int "json:\"consumer_session_timeout_ms,omitempty\"" ConsumerRebalanceTimeoutMS *int "json:\"consumer_rebalance_timeout_ms,omitempty\"" ConsumerHeartbeatIntervalMS *int "json:\"consumer_heartbeat_interval_ms,omitempty\"" }
type PartialPodTemplate ¶
type PartialPodTemplate struct { Labels map[string]string "json:\"labels,omitempty\" jsonschema:\"required\"" Annotations map[string]string "json:\"annotations,omitempty\" jsonschema:\"required\"" Spec *applycorev1.PodSpecApplyConfiguration "json:\"spec,omitempty\"" }
type PartialPostInstallJob ¶
type PartialRBAC ¶
type PartialRackAwareness ¶
type PartialRedpandaResources ¶
type PartialRedpandaResources struct { Limits *corev1.ResourceList "json:\"limits,omitempty\"" Requests *corev1.ResourceList "json:\"requests,omitempty\"" CPU *struct { Cores *resource.Quantity "json:\"cores,omitempty\" jsonschema:\"required\"" Overprovisioned *bool "json:\"overprovisioned,omitempty\"" } "json:\"cpu,omitempty\" jsonschema:\"required\"" Memory *struct { EnableMemoryLocking *bool "json:\"enable_memory_locking,omitempty\"" Container *struct { Min *resource.Quantity "json:\"min,omitempty\"" Max *resource.Quantity "json:\"max,omitempty\" jsonschema:\"required\"" } "json:\"container,omitempty\" jsonschema:\"required\"" Redpanda *struct { Memory *resource.Quantity "json:\"memory,omitempty\"" ReserveMemory *resource.Quantity "json:\"reserveMemory,omitempty\"" } "json:\"redpanda,omitempty\"" } "json:\"memory,omitempty\" jsonschema:\"required\"" }
type PartialSASLAuth ¶
type PartialSASLAuth struct { Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" Mechanism *SASLMechanism "json:\"mechanism,omitempty\"" SecretRef *string "json:\"secretRef,omitempty\"" Users []PartialSASLUser "json:\"users,omitempty\"" BootstrapUser *PartialBootstrapUser "json:\"bootstrapUser,omitempty\"" }
type PartialSASLUser ¶
type PartialSASLUser struct { Name *string "json:\"name,omitempty\"" Password *string "json:\"password,omitempty\"" Mechanism *SASLMechanism "json:\"mechanism,omitempty\"" }
type PartialSchemaRegistryClient ¶
type PartialSchemaRegistryClient struct { Retries *int "json:\"retries,omitempty\"" RetryBaseBackoffMS *int "json:\"retry_base_backoff_ms,omitempty\"" ProduceBatchRecordCount *int "json:\"produce_batch_record_count,omitempty\"" ProduceBatchSizeBytes *int "json:\"produce_batch_size_bytes,omitempty\"" ProduceBatchDelayMS *int "json:\"produce_batch_delay_ms,omitempty\"" ConsumerRequestTimeoutMS *int "json:\"consumer_request_timeout_ms,omitempty\"" ConsumerRequestMaxBytes *int "json:\"consumer_request_max_bytes,omitempty\"" ConsumerSessionTimeoutMS *int "json:\"consumer_session_timeout_ms,omitempty\"" ConsumerRebalanceTimeoutMS *int "json:\"consumer_rebalance_timeout_ms,omitempty\"" ConsumerHeartbeatIntervalMS *int "json:\"consumer_heartbeat_interval_ms,omitempty\"" }
type PartialSchemaRegistryExternal ¶
type PartialSchemaRegistryExternal struct { Enabled *bool "json:\"enabled,omitempty\"" AdvertisedPorts []int32 "json:\"advertisedPorts,omitempty\" jsonschema:\"minItems=1\"" Port *int32 "json:\"port,omitempty\"" NodePort *int32 "json:\"nodePort,omitempty\"" AuthenticationMethod *HTTPAuthenticationMethod "json:\"authenticationMethod,omitempty\"" TLS *PartialExternalTLS "json:\"tls,omitempty\"" }
type PartialSchemaRegistryListeners ¶
type PartialSchemaRegistryListeners struct { Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" External PartialExternalListeners[PartialSchemaRegistryExternal] "json:\"external,omitempty\"" AuthenticationMethod *HTTPAuthenticationMethod "json:\"authenticationMethod,omitempty\"" KafkaEndpoint *string "json:\"kafkaEndpoint,omitempty\" jsonschema:\"required,pattern=^[A-Za-z_-][A-Za-z0-9_-]*$\"" Port *int32 "json:\"port,omitempty\" jsonschema:\"required\"" TLS *PartialInternalTLS "json:\"tls,omitempty\" jsonschema:\"required\"" }
type PartialSecretRef ¶
type PartialService ¶
type PartialServiceAccountCfg ¶
type PartialServiceAccountCfg struct { Annotations map[string]string "json:\"annotations,omitempty\" jsonschema:\"required\"" AutomountServiceAccountToken *bool "json:\"automountServiceAccountToken,omitempty\"" Create *bool "json:\"create,omitempty\" jsonschema:\"required\"" Name *string "json:\"name,omitempty\" jsonschema:\"required\"" }
type PartialSidecars ¶
type PartialSidecars struct { Image *struct { Tag *ImageTag "json:\"tag,omitempty\" jsonschema:\"required,default=Chart.appVersion\"" Repository *string "json:\"repository,omitempty\" jsonschema:\"required,default=docker.redpanda.com/redpandadata/redpanda-operator\"" } "json:\"image,omitempty\"" PVCUnbinder *struct { Enabled *bool "json:\"enabled,omitempty\"" UnbindAfter *string "json:\"unbindAfter,omitempty\"" } "json:\"pvcUnbinder,omitempty\"" BrokerDecommissioner *struct { Enabled *bool "json:\"enabled,omitempty\"" DecommissionAfter *string "json:\"decommissionAfter,omitempty\"" DecommissionRequeueTimeout *string "json:\"decommissionRequeueTimeout,omitempty\"" } "json:\"brokerDecommissioner,omitempty\"" ConfigWatcher *struct { Enabled *bool "json:\"enabled,omitempty\"" } "json:\"configWatcher,omitempty\"" Controllers *struct { Image *struct { Tag *ImageTag "json:\"tag,omitempty\" jsonschema:\"required,default=Chart.appVersion\"" Repository *string "json:\"repository,omitempty\" jsonschema:\"required,default=docker.redpanda.com/redpandadata/redpanda-operator\"" } "json:\"image,omitempty\"" Enabled *bool "json:\"enabled,omitempty\"" CreateRBAC *bool "json:\"createRBAC,omitempty\"" HealthProbeAddress *string "json:\"healthProbeAddress,omitempty\"" MetricsAddress *string "json:\"metricsAddress,omitempty\"" PprofAddress *string "json:\"pprofAddress,omitempty\"" Run []string "json:\"run,omitempty\"" } "json:\"controllers,omitempty\"" }
type PartialStatefulset ¶
type PartialStatefulset struct { AdditionalSelectorLabels map[string]string "json:\"additionalSelectorLabels,omitempty\" jsonschema:\"required\"" Replicas *int32 "json:\"replicas,omitempty\" jsonschema:\"required\"" UpdateStrategy *appsv1.StatefulSetUpdateStrategy "json:\"updateStrategy,omitempty\" jsonschema:\"required\"" AdditionalRedpandaCmdFlags []string "json:\"additionalRedpandaCmdFlags,omitempty\"" PodTemplate *PartialPodTemplate "json:\"podTemplate,omitempty\" jsonschema:\"required\"" Budget *struct { MaxUnavailable *int32 "json:\"maxUnavailable,omitempty\" jsonschema:\"required\"" } "json:\"budget,omitempty\" jsonschema:\"required\"" PodAntiAffinity *struct { TopologyKey *string "json:\"topologyKey,omitempty\" jsonschema:\"required\"" Type *string "json:\"type,omitempty\" jsonschema:\"required,pattern=^(hard|soft|custom)$\"" Weight *int32 "json:\"weight,omitempty\" jsonschema:\"required\"" Custom map[string]any "json:\"custom,omitempty\"" } "json:\"podAntiAffinity,omitempty\" jsonschema:\"required\"" SideCars *PartialSidecars "json:\"sideCars,omitempty\" jsonschema:\"required\"" InitContainers *struct { FSValidator *struct { Enabled *bool "json:\"enabled,omitempty\"" ExpectedFS *string "json:\"expectedFS,omitempty\"" } "json:\"fsValidator,omitempty\"" SetDataDirOwnership *struct { Enabled *bool "json:\"enabled,omitempty\"" } "json:\"setDataDirOwnership,omitempty\"" } "json:\"initContainers,omitempty\"" InitContainerImage *struct { Repository *string "json:\"repository,omitempty\"" Tag *string "json:\"tag,omitempty\"" } "json:\"initContainerImage,omitempty\"" }
type PartialStorage ¶
type PartialStorage struct { HostPath *string "json:\"hostPath,omitempty\" jsonschema:\"required\"" Tiered *PartialTiered "json:\"tiered,omitempty\" jsonschema:\"required\"" PersistentVolume *struct { Annotations map[string]string "json:\"annotations,omitempty\" jsonschema:\"required\"" Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" Labels map[string]string "json:\"labels,omitempty\" jsonschema:\"required\"" Size *resource.Quantity "json:\"size,omitempty\" jsonschema:\"required\"" StorageClass *string "json:\"storageClass,omitempty\" jsonschema:\"required\"" NameOverwrite *string "json:\"nameOverwrite,omitempty\"" } "json:\"persistentVolume,omitempty\" jsonschema:\"required,deprecated\"" TieredConfig PartialTieredStorageConfig "json:\"tieredConfig,omitempty\" jsonschema:\"deprecated\"" TieredStorageHostPath *string "json:\"tieredStorageHostPath,omitempty\" jsonschema:\"deprecated\"" TieredStoragePersistentVolume *struct { Annotations map[string]string "json:\"annotations,omitempty\" jsonschema:\"required\"" Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" Labels map[string]string "json:\"labels,omitempty\" jsonschema:\"required\"" StorageClass *string "json:\"storageClass,omitempty\" jsonschema:\"required\"" } "json:\"tieredStoragePersistentVolume,omitempty\" jsonschema:\"deprecated\"" }
type PartialTLS ¶
type PartialTLS struct { Enabled *bool "json:\"enabled,omitempty\" jsonschema:\"required\"" Certs PartialTLSCertMap "json:\"certs,omitempty\" jsonschema:\"required\"" }
type PartialTLSCert ¶
type PartialTLSCert struct { Enabled *bool "json:\"enabled,omitempty\"" CAEnabled *bool "json:\"caEnabled,omitempty\" jsonschema:\"required\"" ApplyInternalDNSNames *bool "json:\"applyInternalDNSNames,omitempty\"" Duration *string "json:\"duration,omitempty\" jsonschema:\"pattern=.*[smh]$\"" IssuerRef *cmmetav1.ObjectReference "json:\"issuerRef,omitempty\"" SecretRef *corev1.LocalObjectReference "json:\"secretRef,omitempty\"" ClientSecretRef *corev1.LocalObjectReference "json:\"clientSecretRef,omitempty\"" }
type PartialTLSCertMap ¶
type PartialTLSCertMap map[string]PartialTLSCert
type PartialTiered ¶
type PartialTiered struct { CredentialsSecretRef *PartialTieredStorageCredentials "json:\"credentialsSecretRef,omitempty\"" Config PartialTieredStorageConfig "json:\"config,omitempty\"" HostPath *string "json:\"hostPath,omitempty\"" MountType *string "json:\"mountType,omitempty\" jsonschema:\"required,pattern=^(none|hostPath|emptyDir|persistentVolume)$\"" PersistentVolume *struct { Annotations map[string]string "json:\"annotations,omitempty\" jsonschema:\"required\"" Enabled *bool "json:\"enabled,omitempty\"" Labels map[string]string "json:\"labels,omitempty\" jsonschema:\"required\"" NameOverwrite *string "json:\"nameOverwrite,omitempty\"" Size *string "json:\"size,omitempty\"" StorageClass *string "json:\"storageClass,omitempty\" jsonschema:\"required\"" } "json:\"persistentVolume,omitempty\"" }
type PartialTieredStorageCredentials ¶
type PartialTieredStorageCredentials struct { AccessKey *PartialSecretRef "json:\"accessKey,omitempty\"" SecretKey *PartialSecretRef "json:\"secretKey,omitempty\"" }
type PartialTrustStore ¶
type PartialTrustStore struct { ConfigMapKeyRef *corev1.ConfigMapKeySelector "json:\"configMapKeyRef,omitempty\"" SecretKeyRef *corev1.SecretKeySelector "json:\"secretKeyRef,omitempty\"" }
type PartialTunableConfig ¶
type PartialTuning ¶
type PartialTuning struct { TuneAIOEvents *bool "json:\"tune_aio_events,omitempty\"" TuneClocksource *bool "json:\"tune_clocksource,omitempty\"" TuneBallastFile *bool "json:\"tune_ballast_file,omitempty\"" BallastFilePath *string "json:\"ballast_file_path,omitempty\"" BallastFileSize *string "json:\"ballast_file_size,omitempty\"" WellKnownIO *string "json:\"well_known_io,omitempty\"" }
type PartialValues ¶
type PartialValues struct { Global map[string]any "json:\"global,omitempty\"" NameOverride *string "json:\"nameOverride,omitempty\"" FullnameOverride *string "json:\"fullnameOverride,omitempty\"" ClusterDomain *string "json:\"clusterDomain,omitempty\"" CommonLabels map[string]string "json:\"commonLabels,omitempty\"" Image *PartialImage "" /* 126-byte string literal not displayed */ Service *PartialService "json:\"service,omitempty\"" LicenseKey *string "" /* 199-byte string literal not displayed */ AuditLogging *PartialAuditLogging "json:\"auditLogging,omitempty\"" Enterprise *PartialEnterprise "json:\"enterprise,omitempty\"" RackAwareness *PartialRackAwareness "json:\"rackAwareness,omitempty\"" Console *console.PartialValues "json:\"console,omitempty\"" Auth *PartialAuth "json:\"auth,omitempty\"" TLS *PartialTLS "json:\"tls,omitempty\"" External *PartialExternalConfig "json:\"external,omitempty\"" Logging *PartialLogging "json:\"logging,omitempty\"" Monitoring *PartialMonitoring "json:\"monitoring,omitempty\"" Resources *PartialRedpandaResources "json:\"resources,omitempty\"" Storage *PartialStorage "json:\"storage,omitempty\"" PostInstallJob *PartialPostInstallJob "json:\"post_install_job,omitempty\"" Statefulset *PartialStatefulset "json:\"statefulset,omitempty\"" ServiceAccount *PartialServiceAccountCfg "json:\"serviceAccount,omitempty\"" RBAC *PartialRBAC "json:\"rbac,omitempty\"" Tuning *PartialTuning "json:\"tuning,omitempty\"" Listeners *PartialListeners "json:\"listeners,omitempty\"" Config *PartialConfig "json:\"config,omitempty\"" Tests *struct { Enabled *bool "json:\"enabled,omitempty\"" } "json:\"tests,omitempty\"" Force *bool "json:\"force,omitempty\"" PodTemplate *PartialPodTemplate "json:\"podTemplate,omitempty\"" }
type PodTemplate ¶
type PodTemplate struct { Labels map[string]string `json:"labels,omitempty" jsonschema:"required"` Annotations map[string]string `json:"annotations,omitempty" jsonschema:"required"` Spec *applycorev1.PodSpecApplyConfiguration `json:"spec,omitempty"` }
type PostInstallJob ¶
type RackAwareness ¶
type RedpandaResources ¶
type RedpandaResources struct { Limits *corev1.ResourceList `json:"limits,omitempty"` Requests *corev1.ResourceList `json:"requests,omitempty"` CPU struct { Cores resource.Quantity `json:"cores" jsonschema:"required"` Overprovisioned *bool `json:"overprovisioned"` } `json:"cpu" jsonschema:"required"` // Memory resources // For details, // see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/#configure-memory-resources). Memory struct { // Enables memory locking. // For production, set to `true`. EnableMemoryLocking *bool `json:"enable_memory_locking"` // It is recommended to have at least 2Gi of memory per core for the Redpanda binary. // This memory is taken from the total memory given to each container. // The Helm chart allocates 80% of the container's memory to Redpanda, leaving the rest for // the Seastar subsystem (reserveMemory) and other container processes. // So at least 2.5Gi per core is recommended in order to ensure Redpanda has a full 2Gi. // // These values affect `--memory` and `--reserve-memory` flags passed to Redpanda and the memory // requests/limits in the StatefulSet. // Valid suffixes: k, M, G, T, P, E, Ki, Mi, Gi, Ti, Pi, Ei // Suffixes are defined as International System of units (http://physics.nist.gov/cuu/Units/binary.html). // To create `Guaranteed` Pod QoS for Redpanda brokers, provide both container max and min values for the container. // For details, see // https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/#create-a-pod-that-gets-assigned-a-qos-class-of-guaranteed // * Every container in the Pod must have a memory limit and a memory request. // * For every container in the Pod, the memory limit must equal the memory request. Container struct { // Minimum memory count for each Redpanda broker. // If omitted, the `min` value is equal to the `max` value (requested resources defaults to limits). // This setting is equivalent to `resources.requests.memory`. // For production, use 10Gi or greater. Min *resource.Quantity `json:"min"` // Maximum memory count for each Redpanda broker. // Equivalent to `resources.limits.memory`. // For production, use `10Gi` or greater. Max resource.Quantity `json:"max" jsonschema:"required"` } `json:"container" jsonschema:"required"` // This optional `redpanda` object allows you to specify the memory size for both the Redpanda // process and the underlying reserved memory used by Seastar. // This section is omitted by default, and memory sizes are calculated automatically // based on container memory. // Uncommenting this section and setting memory and reserveMemory values will disable // automatic calculation. Redpanda *struct { // Memory for the Redpanda process. // This must be lower than the container's memory (resources.memory.container.min if provided, otherwise // resources.memory.container.max). // Equivalent to --memory. // For production, use 8Gi or greater. Memory *resource.Quantity `json:"memory"` // Memory reserved for the Seastar subsystem. // Any value above 1Gi will provide diminishing performance benefits. // Equivalent to --reserve-memory. // For production, use 1Gi. ReserveMemory *resource.Quantity `json:"reserveMemory"` } `json:"redpanda"` } `json:"memory" jsonschema:"required"` }
RedpandaResources encapsulates the calculation of the redpanda container's corev1.ResourceRequirements and parameters such as `--memory`, `--reserve-memory`, and `--smp`. This calculation supports two modes:
Explicit mode (recommended): Activated when `Limits` and `Requests` are set. In this mode, the CLI flags are calculated directly based on the provided `Limits` and `Requests`. This mode ensures predictable resource allocation and is recommended for production environments. If additional tuning is required, the CLI flags can be manually overridden using `statefulset.additionalRedpandaCmdFlags`.
Legacy mode (default): Used when `Limits` and `Requests` are not set. In this mode, the container resources and CLI flags are calculated using built-in default logic, where 80% of the container's memory is allocated to Redpanda and the rest is reserved for system overhead. Legacy mode is intended for backward compatibility and less controlled environments.
Explicit mode offers better control and aligns with Kubernetes best practices. Legacy mode is a fallback for users who have not defined `Limits` and `Requests`.
func (*RedpandaResources) GetOverProvisionValue ¶
func (rr *RedpandaResources) GetOverProvisionValue() bool
func (*RedpandaResources) GetRedpandaFlags ¶
func (rr *RedpandaResources) GetRedpandaFlags() map[string]string
func (*RedpandaResources) GetResourceRequirements ¶
func (rr *RedpandaResources) GetResourceRequirements() corev1.ResourceRequirements
type ResourceQuantity ¶
ResourceQuantity is an extension of resource.Quantity that implements JSONSchemaer. It's specifically for typing a key in TieredStorageConfig.
func (ResourceQuantity) JSONSchema ¶
func (ResourceQuantity) JSONSchema() *jsonschema.Schema
type SASLAuth ¶
type SASLAuth struct { Enabled bool `json:"enabled" jsonschema:"required"` Mechanism SASLMechanism `json:"mechanism"` SecretRef string `json:"secretRef"` Users []SASLUser `json:"users"` BootstrapUser BootstrapUser `json:"bootstrapUser"` }
type SASLMechanism ¶
type SASLMechanism string
func GetSASLMechanism ¶
func GetSASLMechanism(dot *helmette.Dot) SASLMechanism
func (SASLMechanism) JSONSchemaExtend ¶
func (SASLMechanism) JSONSchemaExtend(s *jsonschema.Schema)
type SASLUser ¶
type SASLUser struct { Name string `json:"name"` Password string `json:"password"` Mechanism *SASLMechanism `json:"mechanism"` }
type SchemaRegistryClient ¶
type SchemaRegistryClient struct { Retries int `json:"retries"` RetryBaseBackoffMS int `json:"retry_base_backoff_ms"` ProduceBatchRecordCount int `json:"produce_batch_record_count"` ProduceBatchSizeBytes int `json:"produce_batch_size_bytes"` ProduceBatchDelayMS int `json:"produce_batch_delay_ms"` ConsumerRequestTimeoutMS int `json:"consumer_request_timeout_ms"` ConsumerRequestMaxBytes int `json:"consumer_request_max_bytes"` ConsumerSessionTimeoutMS int `json:"consumer_session_timeout_ms"` ConsumerRebalanceTimeoutMS int `json:"consumer_rebalance_timeout_ms"` ConsumerHeartbeatIntervalMS int `json:"consumer_heartbeat_interval_ms"` }
type SchemaRegistryExternal ¶
type SchemaRegistryExternal struct { // Enabled indicates if this listener is enabled. If not specified, // defaults to the value of [ExternalConfig.Enabled]. Enabled *bool `json:"enabled"` AdvertisedPorts []int32 `json:"advertisedPorts" jsonschema:"minItems=1"` Port int32 `json:"port"` NodePort *int32 `json:"nodePort"` AuthenticationMethod *HTTPAuthenticationMethod `json:"authenticationMethod"` TLS *ExternalTLS `json:"tls"` }
func (*SchemaRegistryExternal) IsEnabled ¶
func (l *SchemaRegistryExternal) IsEnabled() bool
func (SchemaRegistryExternal) JSONSchemaExtend ¶
func (SchemaRegistryExternal) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
type SchemaRegistryListeners ¶
type SchemaRegistryListeners struct { // Enabled indicates if this listener is enabled. If not specified, // defaults to the value of [ExternalConfig.Enabled]. Enabled bool `json:"enabled" jsonschema:"required"` External ExternalListeners[SchemaRegistryExternal] `json:"external"` AuthenticationMethod *HTTPAuthenticationMethod `json:"authenticationMethod"` KafkaEndpoint string `json:"kafkaEndpoint" jsonschema:"required,pattern=^[A-Za-z_-][A-Za-z0-9_-]*$"` Port int32 `json:"port" jsonschema:"required"` TLS InternalTLS `json:"tls" jsonschema:"required"` }
func (*SchemaRegistryListeners) ConsoleTLS ¶
func (l *SchemaRegistryListeners) ConsoleTLS(tls *TLS) ConsoleTLS
func (SchemaRegistryListeners) JSONSchemaExtend ¶
func (SchemaRegistryListeners) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (*SchemaRegistryListeners) Listeners ¶
func (l *SchemaRegistryListeners) Listeners(saslEnabled bool) []map[string]any
func (*SchemaRegistryListeners) ListenersTLS ¶
func (l *SchemaRegistryListeners) ListenersTLS(tls *TLS) []map[string]any
func (*SchemaRegistryListeners) TrustStores ¶
func (l *SchemaRegistryListeners) TrustStores(tls *TLS) []*TrustStore
TrustStores returns a slice of all configured and enabled [TrustStore]s on both internal and external listeners.
type SecretRef ¶
type SecretRef struct { // ConfigurationKey is never read. ConfigurationKey string `json:"configurationKey"` Key string `json:"key"` Name string `json:"name"` }
func (*SecretRef) AsSource ¶
func (sr *SecretRef) AsSource() *corev1.EnvVarSource
type ServiceAccountCfg ¶
type Sidecars ¶
type Sidecars struct { Image struct { Tag ImageTag `json:"tag" jsonschema:"required,default=Chart.appVersion"` Repository string `json:"repository" jsonschema:"required,default=docker.redpanda.com/redpandadata/redpanda-operator"` } `json:"image"` PVCUnbinder struct { Enabled bool `json:"enabled"` UnbindAfter string `json:"unbindAfter"` } `json:"pvcUnbinder"` BrokerDecommissioner struct { Enabled bool `json:"enabled"` DecommissionAfter string `json:"decommissionAfter"` DecommissionRequeueTimeout string `json:"decommissionRequeueTimeout"` } `json:"brokerDecommissioner"` ConfigWatcher struct { Enabled bool `json:"enabled"` } `json:"configWatcher"` Controllers struct { Image struct { Tag ImageTag `json:"tag" jsonschema:"required,default=Chart.appVersion"` Repository string `json:"repository" jsonschema:"required,default=docker.redpanda.com/redpandadata/redpanda-operator"` } `json:"image"` Enabled bool `json:"enabled"` CreateRBAC bool `json:"createRBAC"` HealthProbeAddress string `json:"healthProbeAddress"` MetricsAddress string `json:"metricsAddress"` PprofAddress string `json:"pprofAddress"` Run []string `json:"run"` } `json:"controllers"` }
func (*Sidecars) AdditionalSidecarControllersEnabled ¶
func (*Sidecars) ShouldCreateRBAC ¶
type Statefulset ¶
type Statefulset struct { AdditionalSelectorLabels map[string]string `json:"additionalSelectorLabels" jsonschema:"required"` Replicas int32 `json:"replicas" jsonschema:"required"` UpdateStrategy appsv1.StatefulSetUpdateStrategy `json:"updateStrategy" jsonschema:"required"` AdditionalRedpandaCmdFlags []string `json:"additionalRedpandaCmdFlags"` PodTemplate PodTemplate `json:"podTemplate" jsonschema:"required"` Budget struct { MaxUnavailable int32 `json:"maxUnavailable" jsonschema:"required"` } `json:"budget" jsonschema:"required"` PodAntiAffinity struct { TopologyKey string `json:"topologyKey" jsonschema:"required"` Type string `json:"type" jsonschema:"required,pattern=^(hard|soft|custom)$"` Weight int32 `json:"weight" jsonschema:"required"` Custom map[string]any `json:"custom"` } `json:"podAntiAffinity" jsonschema:"required"` SideCars Sidecars `json:"sideCars" jsonschema:"required"` InitContainers struct { FSValidator struct { Enabled bool `json:"enabled"` ExpectedFS string `json:"expectedFS"` } `json:"fsValidator"` SetDataDirOwnership struct { Enabled bool `json:"enabled"` } `json:"setDataDirOwnership"` } `json:"initContainers"` InitContainerImage struct { Repository string `json:"repository"` Tag string `json:"tag"` } `json:"initContainerImage"` }
type Storage ¶
type Storage struct { HostPath string `json:"hostPath" jsonschema:"required"` Tiered Tiered `json:"tiered" jsonschema:"required"` PersistentVolume *struct { Annotations map[string]string `json:"annotations" jsonschema:"required"` Enabled bool `json:"enabled" jsonschema:"required"` Labels map[string]string `json:"labels" jsonschema:"required"` Size resource.Quantity `json:"size" jsonschema:"required"` StorageClass string `json:"storageClass" jsonschema:"required"` NameOverwrite string `json:"nameOverwrite"` } `json:"persistentVolume" jsonschema:"required,deprecated"` TieredConfig TieredStorageConfig `json:"tieredConfig" jsonschema:"deprecated"` TieredStorageHostPath string `json:"tieredStorageHostPath" jsonschema:"deprecated"` TieredStoragePersistentVolume *struct { Annotations map[string]string `json:"annotations" jsonschema:"required"` Enabled bool `json:"enabled" jsonschema:"required"` Labels map[string]string `json:"labels" jsonschema:"required"` StorageClass string `json:"storageClass" jsonschema:"required"` } `json:"tieredStoragePersistentVolume" jsonschema:"deprecated"` }
func (*Storage) GetTieredStorageConfig ¶
func (s *Storage) GetTieredStorageConfig() TieredStorageConfig
func (*Storage) GetTieredStorageHostPath ¶
was: storage-tiered-hostpath
func (*Storage) IsTieredStorageEnabled ¶
func (Storage) JSONSchemaExtend ¶
func (Storage) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (*Storage) StorageMinFreeBytes ¶
func (*Storage) TieredCacheDirectory ¶
TieredCacheDirectory was: tieredStorage.cacheDirectory
func (*Storage) TieredMountType ¶
TieredMountType was: storage-tiered-mountType
func (*Storage) TieredPersistentVolumeAnnotations ¶
Storage.TieredPersistentVolumeAnnotations was storage-tiered-persistentVolume.annotations support legacy storage.tieredStoragePersistentVolume
func (*Storage) TieredPersistentVolumeLabels ¶
Storage.TieredPersistentVolumeLabels was storage-tiered-persistentVolume.labels support legacy storage.tieredStoragePersistentVolume
func (*Storage) TieredPersistentVolumeStorageClass ¶
storage.TieredPersistentVolumeStorageClass was storage-tiered-persistentVolume.storageClass support legacy storage.tieredStoragePersistentVolume
type TLS ¶
type TLS struct { Enabled bool `json:"enabled" jsonschema:"required"` Certs TLSCertMap `json:"certs" jsonschema:"required"` }
type TLSCert ¶
type TLSCert struct { // Enabled should be interpreted as `true` if not set. Enabled *bool `json:"enabled"` CAEnabled bool `json:"caEnabled" jsonschema:"required"` ApplyInternalDNSNames *bool `json:"applyInternalDNSNames"` Duration string `json:"duration" jsonschema:"pattern=.*[smh]$"` IssuerRef *cmmetav1.ObjectReference `json:"issuerRef"` SecretRef *corev1.LocalObjectReference `json:"secretRef"` ClientSecretRef *corev1.LocalObjectReference `json:"clientSecretRef"` }
type TLSCertMap ¶
func (TLSCertMap) JSONSchemaExtend ¶
func (TLSCertMap) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (TLSCertMap) MustGet ¶
func (m TLSCertMap) MustGet(name string) *TLSCert
type Tiered ¶
type Tiered struct { CredentialsSecretRef TieredStorageCredentials `json:"credentialsSecretRef"` Config TieredStorageConfig `json:"config"` HostPath string `json:"hostPath"` MountType string `json:"mountType" jsonschema:"required,pattern=^(none|hostPath|emptyDir|persistentVolume)$"` PersistentVolume struct { Annotations map[string]string `json:"annotations" jsonschema:"required"` Enabled bool `json:"enabled"` Labels map[string]string `json:"labels" jsonschema:"required"` NameOverwrite string `json:"nameOverwrite"` Size string `json:"size"` StorageClass string `json:"storageClass" jsonschema:"required"` } `json:"persistentVolume"` }
type TieredStorageConfig ¶
func (TieredStorageConfig) CloudStorageCacheSize ¶
func (c TieredStorageConfig) CloudStorageCacheSize() *resource.Quantity
func (TieredStorageConfig) HasAzureCanaries ¶
func (c TieredStorageConfig) HasAzureCanaries() bool
HasAzureCanaries returns true if this configuration has keys set that would indicate the configuration is for a MSFT Azure environment.
If true, [TieredStorageCredentials.SecretKey] should be treated as the value for `cloud_storage_azure_shared_key` instead of `cloud_storage_secret_key`.
func (TieredStorageConfig) JSONSchema ¶
func (TieredStorageConfig) JSONSchema() *jsonschema.Schema
+gotohelm:ignore=true
func (TieredStorageConfig) Translate ¶
func (c TieredStorageConfig) Translate(creds *TieredStorageCredentials) map[string]any
Translate converts TieredStorageConfig into a map suitable for use in an unexpanded `.bootstrap.yaml`.
type TieredStorageCredentials ¶
type TieredStorageCredentials struct { AccessKey *SecretRef `json:"accessKey"` SecretKey *SecretRef `json:"secretKey"` }
func (*TieredStorageCredentials) AsEnvVars ¶
func (tsc *TieredStorageCredentials) AsEnvVars(config TieredStorageConfig) []corev1.EnvVar
type TrustStore ¶
type TrustStore struct { ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef"` SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef"` }
func (TrustStore) JSONSchemaExtend ¶
func (TrustStore) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (*TrustStore) RelativePath ¶
func (t *TrustStore) RelativePath() string
func (*TrustStore) TrustStoreFilePath ¶
func (t *TrustStore) TrustStoreFilePath() string
func (*TrustStore) VolumeProjection ¶
func (t *TrustStore) VolumeProjection() corev1.VolumeProjection
type TunableConfig ¶
func (TunableConfig) JSONSchemaExtend ¶
func (TunableConfig) JSONSchemaExtend(schema *jsonschema.Schema)
+gotohelm:ignore=true
func (*TunableConfig) Translate ¶
func (c *TunableConfig) Translate() map[string]any
type Tuning ¶
type Tuning struct { TuneAIOEvents bool `json:"tune_aio_events,omitempty"` TuneClocksource bool `json:"tune_clocksource,omitempty"` TuneBallastFile bool `json:"tune_ballast_file,omitempty"` BallastFilePath string `json:"ballast_file_path,omitempty"` BallastFileSize string `json:"ballast_file_size,omitempty"` WellKnownIO string `json:"well_known_io,omitempty"` }
type Values ¶
type Values struct { // Global is an untyped map of values that are "global" to this chart and // all its sub-charts. // See also: https://helm.sh/docs/chart_template_guide/subcharts_and_globals/#global-chart-values Global map[string]any `json:"global,omitempty"` NameOverride string `json:"nameOverride"` FullnameOverride string `json:"fullnameOverride"` ClusterDomain string `json:"clusterDomain"` CommonLabels map[string]string `json:"commonLabels"` Image Image `json:"image" jsonschema:"required,description=Values used to define the container image to be used for Redpanda"` Service *Service `json:"service"` LicenseKey string `` /* 183-byte string literal not displayed */ AuditLogging AuditLogging `json:"auditLogging"` Enterprise Enterprise `json:"enterprise"` RackAwareness RackAwareness `json:"rackAwareness"` Console console.PartialValues `json:"console,omitempty"` Auth Auth `json:"auth"` TLS TLS `json:"tls"` External ExternalConfig `json:"external"` Logging Logging `json:"logging"` Monitoring Monitoring `json:"monitoring"` Resources RedpandaResources `json:"resources"` Storage Storage `json:"storage"` PostInstallJob PostInstallJob `json:"post_install_job"` Statefulset Statefulset `json:"statefulset"` ServiceAccount ServiceAccountCfg `json:"serviceAccount"` RBAC RBAC `json:"rbac"` Tuning Tuning `json:"tuning"` Listeners Listeners `json:"listeners"` Config Config `json:"config"` Tests *struct { Enabled bool `json:"enabled"` } `json:"tests"` Force bool `json:"force"` PodTemplate PodTemplate `json:"podTemplate"` }
Source Files
¶
- cert_issuers.go
- certs.go
- chart.go
- configmap.tpl.go
- console.tpl.go
- helpers.go
- notes.go
- poddisruptionbudget.go
- post_install_upgrade_job.go
- rbac.go
- secrets.go
- service.loadbalancer.go
- service.nodeport.go
- service_internal.go
- serviceaccount.go
- servicemonitor.go
- statefulset.go
- values.go
- values_partial.gen.go
- values_util.go