Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthAzuread ¶
type AuthAzuread struct { // Automatically sign-up users on successful sign-in AllowSignUp *bool `groups:"create,update" json:"allow_sign_up,omitempty"` // +kubebuilder:validation:MaxItems=50 // Allowed domains AllowedDomains []string `groups:"create,update" json:"allowed_domains,omitempty"` // +kubebuilder:validation:MaxItems=50 // Require users to belong to one of given groups AllowedGroups []string `groups:"create,update" json:"allowed_groups,omitempty"` // +kubebuilder:validation:MaxLength=2048 // Authorization URL AuthUrl string `groups:"create,update" json:"auth_url"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client ID from provider ClientId string `groups:"create,update" json:"client_id"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client secret from provider ClientSecret string `groups:"create,update" json:"client_secret"` // +kubebuilder:validation:MaxLength=2048 // Token URL TokenUrl string `groups:"create,update" json:"token_url"` }
Azure AD OAuth integration
func (*AuthAzuread) DeepCopy ¶
func (in *AuthAzuread) DeepCopy() *AuthAzuread
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthAzuread.
func (*AuthAzuread) DeepCopyInto ¶
func (in *AuthAzuread) DeepCopyInto(out *AuthAzuread)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthGenericOauth ¶
type AuthGenericOauth struct { // Automatically sign-up users on successful sign-in AllowSignUp *bool `groups:"create,update" json:"allow_sign_up,omitempty"` // +kubebuilder:validation:MaxItems=50 // Allowed domains AllowedDomains []string `groups:"create,update" json:"allowed_domains,omitempty"` // +kubebuilder:validation:MaxItems=50 // Require user to be member of one of the listed organizations AllowedOrganizations []string `groups:"create,update" json:"allowed_organizations,omitempty"` // +kubebuilder:validation:MaxLength=2048 // API URL ApiUrl string `groups:"create,update" json:"api_url"` // +kubebuilder:validation:MaxLength=2048 // Authorization URL AuthUrl string `groups:"create,update" json:"auth_url"` // Allow users to bypass the login screen and automatically log in AutoLogin *bool `groups:"create,update" json:"auto_login,omitempty"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client ID from provider ClientId string `groups:"create,update" json:"client_id"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client secret from provider ClientSecret string `groups:"create,update" json:"client_secret"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^[a-zA-Z0-9_\- ]+$` // Name of the OAuth integration Name *string `groups:"create,update" json:"name,omitempty"` // +kubebuilder:validation:MaxItems=50 // OAuth scopes Scopes []string `groups:"create,update" json:"scopes,omitempty"` // +kubebuilder:validation:MaxLength=2048 // Token URL TokenUrl string `groups:"create,update" json:"token_url"` }
Generic OAuth integration
func (*AuthGenericOauth) DeepCopy ¶
func (in *AuthGenericOauth) DeepCopy() *AuthGenericOauth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthGenericOauth.
func (*AuthGenericOauth) DeepCopyInto ¶
func (in *AuthGenericOauth) DeepCopyInto(out *AuthGenericOauth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthGithub ¶
type AuthGithub struct { // Automatically sign-up users on successful sign-in AllowSignUp *bool `groups:"create,update" json:"allow_sign_up,omitempty"` // +kubebuilder:validation:MaxItems=50 // Require users to belong to one of given organizations AllowedOrganizations []string `groups:"create,update" json:"allowed_organizations,omitempty"` // Allow users to bypass the login screen and automatically log in AutoLogin *bool `groups:"create,update" json:"auto_login,omitempty"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client ID from provider ClientId string `groups:"create,update" json:"client_id"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client secret from provider ClientSecret string `groups:"create,update" json:"client_secret"` // Stop automatically syncing user roles SkipOrgRoleSync *bool `groups:"create,update" json:"skip_org_role_sync,omitempty"` // +kubebuilder:validation:MaxItems=50 // Require users to belong to one of given team IDs TeamIds []int `groups:"create,update" json:"team_ids,omitempty"` }
Github Auth integration
func (*AuthGithub) DeepCopy ¶
func (in *AuthGithub) DeepCopy() *AuthGithub
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthGithub.
func (*AuthGithub) DeepCopyInto ¶
func (in *AuthGithub) DeepCopyInto(out *AuthGithub)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthGitlab ¶
type AuthGitlab struct { // Automatically sign-up users on successful sign-in AllowSignUp *bool `groups:"create,update" json:"allow_sign_up,omitempty"` // +kubebuilder:validation:MaxItems=50 // Require users to belong to one of given groups AllowedGroups []string `groups:"create,update" json:"allowed_groups"` // +kubebuilder:validation:MaxLength=2048 // API URL. This only needs to be set when using self hosted GitLab ApiUrl *string `groups:"create,update" json:"api_url,omitempty"` // +kubebuilder:validation:MaxLength=2048 // Authorization URL. This only needs to be set when using self hosted GitLab AuthUrl *string `groups:"create,update" json:"auth_url,omitempty"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client ID from provider ClientId string `groups:"create,update" json:"client_id"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client secret from provider ClientSecret string `groups:"create,update" json:"client_secret"` // +kubebuilder:validation:MaxLength=2048 // Token URL. This only needs to be set when using self hosted GitLab TokenUrl *string `groups:"create,update" json:"token_url,omitempty"` }
GitLab Auth integration
func (*AuthGitlab) DeepCopy ¶
func (in *AuthGitlab) DeepCopy() *AuthGitlab
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthGitlab.
func (*AuthGitlab) DeepCopyInto ¶
func (in *AuthGitlab) DeepCopyInto(out *AuthGitlab)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthGoogle ¶
type AuthGoogle struct { // Automatically sign-up users on successful sign-in AllowSignUp *bool `groups:"create,update" json:"allow_sign_up,omitempty"` // +kubebuilder:validation:MaxItems=64 // Domains allowed to sign-in to this Grafana AllowedDomains []string `groups:"create,update" json:"allowed_domains"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client ID from provider ClientId string `groups:"create,update" json:"client_id"` // +kubebuilder:validation:MaxLength=1024 // +kubebuilder:validation:Pattern=`^[\040-\176]+$` // Client secret from provider ClientSecret string `groups:"create,update" json:"client_secret"` }
Google Auth integration
func (*AuthGoogle) DeepCopy ¶
func (in *AuthGoogle) DeepCopy() *AuthGoogle
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthGoogle.
func (*AuthGoogle) DeepCopyInto ¶
func (in *AuthGoogle) DeepCopyInto(out *AuthGoogle)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DateFormats ¶
type DateFormats struct { // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern=`(?i)^([a-zA-Z_]+/){1,2}[a-zA-Z_-]+$|^(Etc/)?(UTC|GMT)([+-](\d){1,2})?$|^(Factory)$|^(browser)$` // Default time zone for user preferences. Value 'browser' uses browser local time zone. DefaultTimezone *string `groups:"create,update" json:"default_timezone,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string for cases where full date is shown FullDate *string `groups:"create,update" json:"full_date,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string used when a time requiring day accuracy is shown IntervalDay *string `groups:"create,update" json:"interval_day,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string used when a time requiring hour accuracy is shown IntervalHour *string `groups:"create,update" json:"interval_hour,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string used when a time requiring minute accuracy is shown IntervalMinute *string `groups:"create,update" json:"interval_minute,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string used when a time requiring month accuracy is shown IntervalMonth *string `groups:"create,update" json:"interval_month,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string used when a time requiring second accuracy is shown IntervalSecond *string `groups:"create,update" json:"interval_second,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$` // Moment.js style format string used when a time requiring year accuracy is shown IntervalYear *string `groups:"create,update" json:"interval_year,omitempty"` }
Grafana date format specifications
func (*DateFormats) DeepCopy ¶
func (in *DateFormats) DeepCopy() *DateFormats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DateFormats.
func (*DateFormats) DeepCopyInto ¶
func (in *DateFormats) DeepCopyInto(out *DateFormats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalImageStorage ¶
type ExternalImageStorage struct { // +kubebuilder:validation:MaxLength=4096 // +kubebuilder:validation:Pattern=`^[A-Z0-9]+$` // S3 access key. Requires permissions to the S3 bucket for the s3:PutObject and s3:PutObjectAcl actions AccessKey string `groups:"create,update" json:"access_key"` // +kubebuilder:validation:MaxLength=2048 // Bucket URL for S3 BucketUrl string `groups:"create,update" json:"bucket_url"` // +kubebuilder:validation:Enum="s3" // Provider type Provider string `groups:"create,update" json:"provider"` // +kubebuilder:validation:MaxLength=4096 // +kubebuilder:validation:Pattern=`^[A-Za-z0-9/+=]+$` // S3 secret key SecretKey string `groups:"create,update" json:"secret_key"` }
External image store settings
func (*ExternalImageStorage) DeepCopy ¶
func (in *ExternalImageStorage) DeepCopy() *ExternalImageStorage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalImageStorage.
func (*ExternalImageStorage) DeepCopyInto ¶
func (in *ExternalImageStorage) DeepCopyInto(out *ExternalImageStorage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GrafanaUserConfig ¶
type GrafanaUserConfig struct { // +kubebuilder:validation:MaxItems=1 // Additional Cloud Regions for Backup Replication AdditionalBackupRegions []string `groups:"create,update" json:"additional_backup_regions,omitempty"` // Enable or disable Grafana legacy alerting functionality. This should not be enabled with unified_alerting_enabled. AlertingEnabled *bool `groups:"create,update" json:"alerting_enabled,omitempty"` // +kubebuilder:validation:Enum="alerting";"keep_state" // Default error or timeout setting for new alerting rules AlertingErrorOrTimeout *string `groups:"create,update" json:"alerting_error_or_timeout,omitempty"` // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=1000000 // Max number of alert annotations that Grafana stores. 0 (default) keeps all alert annotations. AlertingMaxAnnotationsToKeep *int `groups:"create,update" json:"alerting_max_annotations_to_keep,omitempty"` // +kubebuilder:validation:Enum="alerting";"no_data";"keep_state";"ok" // Default value for 'no data or null values' for new alerting rules AlertingNodataOrNullvalues *string `groups:"create,update" json:"alerting_nodata_or_nullvalues,omitempty"` // Allow embedding Grafana dashboards with iframe/frame/object/embed tags. Disabled by default to limit impact of clickjacking AllowEmbedding *bool `groups:"create,update" json:"allow_embedding,omitempty"` // Azure AD OAuth integration AuthAzuread *AuthAzuread `groups:"create,update" json:"auth_azuread,omitempty"` // Enable or disable basic authentication form, used by Grafana built-in login AuthBasicEnabled *bool `groups:"create,update" json:"auth_basic_enabled,omitempty"` // Generic OAuth integration AuthGenericOauth *AuthGenericOauth `groups:"create,update" json:"auth_generic_oauth,omitempty"` // Github Auth integration AuthGithub *AuthGithub `groups:"create,update" json:"auth_github,omitempty"` // GitLab Auth integration AuthGitlab *AuthGitlab `groups:"create,update" json:"auth_gitlab,omitempty"` // Google Auth integration AuthGoogle *AuthGoogle `groups:"create,update" json:"auth_google,omitempty"` // +kubebuilder:validation:Enum="lax";"strict";"none" // Cookie SameSite attribute: 'strict' prevents sending cookie for cross-site requests, effectively disabling direct linking from other sites to Grafana. 'lax' is the default value. CookieSamesite *string `groups:"create,update" json:"cookie_samesite,omitempty"` // +kubebuilder:validation:MaxLength=255 // Serve the web frontend using a custom CNAME pointing to the Aiven DNS name CustomDomain *string `groups:"create,update" json:"custom_domain,omitempty"` // This feature is new in Grafana 9 and is quite resource intensive. It may cause low-end plans to work more slowly while the dashboard previews are rendering. DashboardPreviewsEnabled *bool `groups:"create,update" json:"dashboard_previews_enabled,omitempty"` // +kubebuilder:validation:MaxLength=16 // +kubebuilder:validation:Pattern=`^[0-9]+(ms|s|m|h|d)$` // Signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s, 1h DashboardsMinRefreshInterval *string `groups:"create,update" json:"dashboards_min_refresh_interval,omitempty"` // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=100 // Dashboard versions to keep per dashboard DashboardsVersionsToKeep *int `groups:"create,update" json:"dashboards_versions_to_keep,omitempty"` // Send 'X-Grafana-User' header to data source DataproxySendUserHeader *bool `groups:"create,update" json:"dataproxy_send_user_header,omitempty"` // +kubebuilder:validation:Minimum=15 // +kubebuilder:validation:Maximum=90 // Timeout for data proxy requests in seconds DataproxyTimeout *int `groups:"create,update" json:"dataproxy_timeout,omitempty"` // Grafana date format specifications DateFormats *DateFormats `groups:"create,update" json:"date_formats,omitempty"` // Set to true to disable gravatar. Defaults to false (gravatar is enabled) DisableGravatar *bool `groups:"create,update" json:"disable_gravatar,omitempty"` // Editors can manage folders, teams and dashboards created by them EditorsCanAdmin *bool `groups:"create,update" json:"editors_can_admin,omitempty"` // External image store settings ExternalImageStorage *ExternalImageStorage `groups:"create,update" json:"external_image_storage,omitempty"` // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern=`^(G|UA|YT|MO)-[a-zA-Z0-9-]+$` // Google Analytics ID GoogleAnalyticsUaId *string `groups:"create,update" json:"google_analytics_ua_id,omitempty"` // +kubebuilder:validation:MaxItems=1024 // Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' IpFilter []*IpFilter `groups:"create,update" json:"ip_filter,omitempty"` // Enable Grafana /metrics endpoint MetricsEnabled *bool `groups:"create,update" json:"metrics_enabled,omitempty"` // Enforce user lookup based on email instead of the unique ID provided by the IdP OauthAllowInsecureEmailLookup *bool `groups:"create,update" json:"oauth_allow_insecure_email_lookup,omitempty"` // Allow access to selected service ports from private networks PrivateAccess *PrivateAccess `groups:"create,update" json:"private_access,omitempty"` // Allow access to selected service components through Privatelink PrivatelinkAccess *PrivatelinkAccess `groups:"create,update" json:"privatelink_access,omitempty"` // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern=`^[a-z][-a-z0-9]{0,63}$|^$` // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // Name of another project to fork a service from. This has effect only when a new service is being created. ProjectToForkFrom *string `groups:"create" json:"project_to_fork_from,omitempty"` // Allow access to selected service ports from the public Internet PublicAccess *PublicAccess `groups:"create,update" json:"public_access,omitempty"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^[a-zA-Z0-9-_:.]+$` // Name of the basebackup to restore in forked service RecoveryBasebackupName *string `groups:"create,update" json:"recovery_basebackup_name,omitempty"` // Store logs for the service so that they are available in the HTTP API and console. ServiceLog *bool `groups:"create,update" json:"service_log,omitempty"` // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern=`^[a-z][-a-z0-9]{0,63}$|^$` // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // Name of another service to fork from. This has effect only when a new service is being created. ServiceToForkFrom *string `groups:"create" json:"service_to_fork_from,omitempty"` // SMTP server settings SmtpServer *SmtpServer `groups:"create,update" json:"smtp_server,omitempty"` // Use static public IP addresses StaticIps *bool `groups:"create,update" json:"static_ips,omitempty"` // Enable or disable Grafana unified alerting functionality. By default this is enabled and any legacy alerts will be migrated on upgrade to Grafana 9+. To stay on legacy alerting, set unified_alerting_enabled to false and alerting_enabled to true. See https://grafana.com/docs/grafana/latest/alerting/set-up/migrating-alerts/ for more details. UnifiedAlertingEnabled *bool `groups:"create,update" json:"unified_alerting_enabled,omitempty"` // Auto-assign new users on signup to main organization. Defaults to false UserAutoAssignOrg *bool `groups:"create,update" json:"user_auto_assign_org,omitempty"` // +kubebuilder:validation:Enum="Viewer";"Admin";"Editor" // Set role for new signups. Defaults to Viewer UserAutoAssignOrgRole *string `groups:"create,update" json:"user_auto_assign_org_role,omitempty"` // Users with view-only permission can edit but not save dashboards ViewersCanEdit *bool `groups:"create,update" json:"viewers_can_edit,omitempty"` }
func (*GrafanaUserConfig) DeepCopy ¶
func (in *GrafanaUserConfig) DeepCopy() *GrafanaUserConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrafanaUserConfig.
func (*GrafanaUserConfig) DeepCopyInto ¶
func (in *GrafanaUserConfig) DeepCopyInto(out *GrafanaUserConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpFilter ¶
type IpFilter struct { // +kubebuilder:validation:MaxLength=1024 // Description for IP filter list entry Description *string `groups:"create,update" json:"description,omitempty"` // +kubebuilder:validation:MaxLength=43 // CIDR address block Network string `groups:"create,update" json:"network"` }
CIDR address block, either as a string, or in a dict with an optional description field
func (*IpFilter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpFilter.
func (*IpFilter) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivateAccess ¶
type PrivateAccess struct { // Allow clients to connect to grafana with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations Grafana *bool `groups:"create,update" json:"grafana,omitempty"` }
Allow access to selected service ports from private networks
func (*PrivateAccess) DeepCopy ¶
func (in *PrivateAccess) DeepCopy() *PrivateAccess
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateAccess.
func (*PrivateAccess) DeepCopyInto ¶
func (in *PrivateAccess) DeepCopyInto(out *PrivateAccess)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivatelinkAccess ¶
type PrivatelinkAccess struct { // Enable grafana Grafana *bool `groups:"create,update" json:"grafana,omitempty"` }
Allow access to selected service components through Privatelink
func (*PrivatelinkAccess) DeepCopy ¶
func (in *PrivatelinkAccess) DeepCopy() *PrivatelinkAccess
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatelinkAccess.
func (*PrivatelinkAccess) DeepCopyInto ¶
func (in *PrivatelinkAccess) DeepCopyInto(out *PrivatelinkAccess)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PublicAccess ¶
type PublicAccess struct { // Allow clients to connect to grafana from the public internet for service nodes that are in a project VPC or another type of private network Grafana *bool `groups:"create,update" json:"grafana,omitempty"` }
Allow access to selected service ports from the public Internet
func (*PublicAccess) DeepCopy ¶
func (in *PublicAccess) DeepCopy() *PublicAccess
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicAccess.
func (*PublicAccess) DeepCopyInto ¶
func (in *PublicAccess) DeepCopyInto(out *PublicAccess)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SmtpServer ¶
type SmtpServer struct { // +kubebuilder:validation:MaxLength=319 // +kubebuilder:validation:Pattern=`^[A-Za-z0-9_\-\.+\'&]+@(([\da-zA-Z])([_\w-]{,62})\.){,127}(([\da-zA-Z])[_\w-]{,61})?([\da-zA-Z]\.((xn\-\-[a-zA-Z\d]+)|([a-zA-Z\d]{2,})))$` // Address used for sending emails FromAddress string `groups:"create,update" json:"from_address"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^[^\x00-\x1F]+$` // Name used in outgoing emails, defaults to Grafana FromName *string `groups:"create,update" json:"from_name,omitempty"` // +kubebuilder:validation:MaxLength=255 // Server hostname or IP Host string `groups:"create,update" json:"host"` // +kubebuilder:validation:MaxLength=255 // +kubebuilder:validation:Pattern=`^[^\x00-\x1F]+$` // Password for SMTP authentication Password *string `groups:"create,update" json:"password,omitempty"` // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=65535 // SMTP server port Port int `groups:"create,update" json:"port"` // Skip verifying server certificate. Defaults to false SkipVerify *bool `groups:"create,update" json:"skip_verify,omitempty"` // +kubebuilder:validation:Enum="OpportunisticStartTLS";"MandatoryStartTLS";"NoStartTLS" // Either OpportunisticStartTLS, MandatoryStartTLS or NoStartTLS. Default is OpportunisticStartTLS. StarttlsPolicy *string `groups:"create,update" json:"starttls_policy,omitempty"` // +kubebuilder:validation:MaxLength=255 // +kubebuilder:validation:Pattern=`^[^\x00-\x1F]+$` // Username for SMTP authentication Username *string `groups:"create,update" json:"username,omitempty"` }
SMTP server settings
func (*SmtpServer) DeepCopy ¶
func (in *SmtpServer) DeepCopy() *SmtpServer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SmtpServer.
func (*SmtpServer) DeepCopyInto ¶
func (in *SmtpServer) DeepCopyInto(out *SmtpServer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.