Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the unleash.nais.io v1 API group +kubebuilder:object:generate=true +groupName=unleash.nais.io +versionName=v1
Index ¶
- Constants
- Variables
- type ApiToken
- func (t *ApiToken) ApiTokenName(suffix string) string
- func (t *ApiToken) ApiTokenRequest(suffix string) unleashclient.ApiTokenRequest
- func (in *ApiToken) DeepCopy() *ApiToken
- func (in *ApiToken) DeepCopyInto(out *ApiToken)
- func (in *ApiToken) DeepCopyObject() runtime.Object
- func (t *ApiToken) Diff(token unleashclient.ApiToken) string
- func (t *ApiToken) ExistsInList(list []unleashclient.ApiToken) (*unleashclient.ApiToken, bool)
- func (t *ApiToken) IsEqual(token unleashclient.ApiToken) bool
- func (t *ApiToken) NamespacedName() types.NamespacedName
- type ApiTokenList
- type ApiTokenSpec
- type ApiTokenStatus
- type ApiTokenUnleashInstance
- type RemoteUnleash
- func (u *RemoteUnleash) AdminSecretNamespacedName() types.NamespacedName
- func (u *RemoteUnleash) AdminToken(ctx context.Context, client client.Client, namespace string) ([]byte, error)
- func (u *RemoteUnleash) ApiClient(ctx context.Context, client client.Client, namespace string) (*unleashclient.Client, error)
- func (in *RemoteUnleash) DeepCopy() *RemoteUnleash
- func (in *RemoteUnleash) DeepCopyInto(out *RemoteUnleash)
- func (in *RemoteUnleash) DeepCopyObject() runtime.Object
- func (u *RemoteUnleash) IsReady() bool
- func (u *RemoteUnleash) NamespacedName() types.NamespacedName
- func (u *RemoteUnleash) URL() string
- type RemoteUnleashList
- type RemoteUnleashSecret
- type RemoteUnleashServer
- type RemoteUnleashSpec
- type RemoteUnleashStatus
- type Unleash
- func (u *Unleash) AdminToken(ctx context.Context, client client.Client, namespace string) ([]byte, error)
- func (u *Unleash) ApiClient(ctx context.Context, client client.Client, namespace string) (*unleashclient.Client, error)
- func (in *Unleash) DeepCopy() *Unleash
- func (in *Unleash) DeepCopyInto(out *Unleash)
- func (in *Unleash) DeepCopyObject() runtime.Object
- func (u *Unleash) GetInstanceSecretName() string
- func (u *Unleash) GetOperatorSecretName() string
- func (u *Unleash) IsReady() bool
- func (u *Unleash) NamespacedInstanceSecretName() types.NamespacedName
- func (u *Unleash) NamespacedName() types.NamespacedName
- func (u *Unleash) NamespacedNameWithSuffix(suffix string) types.NamespacedName
- func (u *Unleash) NamespacedOperatorSecretName(namespace string) types.NamespacedName
- func (u *Unleash) PublicApiURL() string
- func (u *Unleash) PublicWebURL() string
- func (u *Unleash) URL() string
- type UnleashDatabaseConfig
- type UnleashFederationConfig
- type UnleashIngressConfig
- type UnleashIngressTLSConfig
- type UnleashList
- type UnleashNetworkPolicyConfig
- type UnleashPrometheusConfig
- type UnleashSpec
- type UnleashStatus
Constants ¶
const ( UnleashStatusConditionTypeReconciled = "Reconciled" UnleashStatusConditionTypeConnected = "Connected" UnleashStatusConditionTypeDegraded = "Degraded" ApiTokenStatusConditionTypeCreated = "Created" ApiTokenStatusConditionTypeFailed = "Failed" ApiTokenStatusConditionTypeDeleted = "Deleted" UnleashSecretNamePrefix = "unleasherator" UnleashSecretTokenKey = "token" ApiTokenSecretTokenEnv = "UNLEASH_SERVER_API_TOKEN" ApiTokenSecretServerEnv = "UNLEASH_SERVER_API_URL" ApiTokenSecretEnvEnv = "UNLEASH_SERVER_API_ENV" ApiTokenSecretTypeEnv = "UNLEASH_SERVER_API_TYPE" ApiTokenSecretProjectsEnv = "UNLEASH_SERVER_API_PROJECTS" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "unleash.nais.io", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ApiToken ¶
type ApiToken struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ApiTokenSpec `json:"spec,omitempty"`
Status ApiTokenStatus `json:"status,omitempty"`
}
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Created",type=boolean,JSONPath=`.status.created` +kubebuilder:printcolumn:name="Secret",type=string,JSONPath=`.spec.secretName` +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.spec.type` +kubebuilder:printcolumn:name="Environment",type=string,JSONPath=`.spec.environment` +kubebuilder:printcolumn:name="Failed",type=boolean,JSONPath=`.status.failed`
func (*ApiToken) ApiTokenName ¶
ApiTokenName returns the name of the Unleash client for this token. The name is the same as the token name, but with a suffix. This is to avoid name collisions between multiple Unleasherator instances operating on the same Unleash instance.
func (*ApiToken) ApiTokenRequest ¶
func (t *ApiToken) ApiTokenRequest(suffix string) unleashclient.ApiTokenRequest
func (*ApiToken) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiToken.
func (*ApiToken) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ApiToken) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ApiToken) ExistsInList ¶
func (t *ApiToken) ExistsInList(list []unleashclient.ApiToken) (*unleashclient.ApiToken, bool)
ExistsInList checks if the token equals any token in the list by comparing the type, environment, and projects attributes of the token. It returns the matching token and a boolean indicating if a match was found.
func (*ApiToken) IsEqual ¶
func (t *ApiToken) IsEqual(token unleashclient.ApiToken) bool
IsEqual checks if the token equals another token by comparing the type, environment, and projects attributes of the token.
func (*ApiToken) NamespacedName ¶
func (t *ApiToken) NamespacedName() types.NamespacedName
type ApiTokenList ¶
type ApiTokenList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ApiToken `json:"items"`
}
+kubebuilder:object:root=true
func (*ApiTokenList) DeepCopy ¶
func (in *ApiTokenList) DeepCopy() *ApiTokenList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiTokenList.
func (*ApiTokenList) DeepCopyInto ¶
func (in *ApiTokenList) DeepCopyInto(out *ApiTokenList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ApiTokenList) DeepCopyObject ¶
func (in *ApiTokenList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ApiTokenSpec ¶
type ApiTokenSpec struct {
// UnleashInstance is the Unleash instance this token is for.
// +kubebuilder:validation:Required
UnleashInstance ApiTokenUnleashInstance `json:"unleashInstance"`
// SecretName is the name of the secret where the token will be stored.
// +kubebuilder:validation:Required
SecretName string `json:"secretName"`
// Type is the type of token to create. Valid values are "CLIENT" and "FRONTEND".
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum=CLIENT;FRONTEND
// +kubebuilder:default="CLIENT"
Type string `json:"type,omitempty"`
// Environment is the environment to create the token for.
// +kubebuilder:validation:Optional
// +kubebuilder:default="development"
Environment string `json:"environment,omitempty"`
// Projects is the list of projects to create the token for.
// +kubebuilder:validation:Optional
// +kubebuilder:default={"default"}
Projects []string `json:"projects,omitempty"`
}
ApiTokenSpec defines the desired state of ApiToken
func (*ApiTokenSpec) DeepCopy ¶
func (in *ApiTokenSpec) DeepCopy() *ApiTokenSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiTokenSpec.
func (*ApiTokenSpec) DeepCopyInto ¶
func (in *ApiTokenSpec) DeepCopyInto(out *ApiTokenSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApiTokenStatus ¶
type ApiTokenStatus struct {
// Represents the observations of a ApiToken's current state.
// Unleash.status.conditions.type are: "Created", and "Failed"
// Unleash.status.conditions.status are one of True, False, Unknown.
// Unleash.status.conditions.reason the value should be a CamelCase string and producers of specific
// condition types may define expected values and meanings for this field, and whether the values
// are considered a guaranteed API.
// Unleash.status.conditions.Message is a human readable message indicating details about the transition.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Created is true when the Unleash API token has been created successfully
// in the Unleash instance.
// This is used for kubectl printing purposes. Rather than relying on this
// value, check the conditions instead.
// +kubebuilder:default=false
Created bool `json:"created,omitempty"`
// Failed is true when the Unleash API token reconcile has failed
// This is used for kubectl printing purposes. Rather than relying on this
// value, check the conditions instead.
// +kubebuilder:default=false
Failed bool `json:"failed,omitempty"`
}
ApiTokenStatus defines the observed state of ApiToken
func (*ApiTokenStatus) DeepCopy ¶
func (in *ApiTokenStatus) DeepCopy() *ApiTokenStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiTokenStatus.
func (*ApiTokenStatus) DeepCopyInto ¶
func (in *ApiTokenStatus) DeepCopyInto(out *ApiTokenStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApiTokenUnleashInstance ¶
type ApiTokenUnleashInstance struct {
// ApiVersion is the API version of the Unleash instance.
// +kubebuilder:validation:Required
// +kubebuilder:default=unleash.nais.io/v1
ApiVersion string `json:"apiVersion"`
// Kind is the API kind of the Unleash instance.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=Unleash;RemoteUnleash
Kind string `json:"kind"`
// Name is the name of the Unleash instance.
// +kubebuilder:validation:Required
Name string `json:"name"`
}
ApiTokenUnleashInstance defines the Unleash instance this token is for.
func (*ApiTokenUnleashInstance) DeepCopy ¶
func (in *ApiTokenUnleashInstance) DeepCopy() *ApiTokenUnleashInstance
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiTokenUnleashInstance.
func (*ApiTokenUnleashInstance) DeepCopyInto ¶
func (in *ApiTokenUnleashInstance) DeepCopyInto(out *ApiTokenUnleashInstance)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteUnleash ¶
type RemoteUnleash struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RemoteUnleashSpec `json:"spec,omitempty"`
Status RemoteUnleashStatus `json:"status,omitempty"`
}
RemoteUnleash defines an RemoteUnleash instance +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.spec.unleashInstance.url` +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.status.version` +kubebuilder:printcolumn:name="Reconciled",type=boolean,JSONPath=`.status.reconciled` +kubebuilder:printcolumn:name="Connected",type=boolean,JSONPath=`.status.connected`
func (*RemoteUnleash) AdminSecretNamespacedName ¶
func (u *RemoteUnleash) AdminSecretNamespacedName() types.NamespacedName
AdminSecretNamespacedName returns the namespaced name of the secret containing the Unleash instance's API token.
func (*RemoteUnleash) AdminToken ¶
func (u *RemoteUnleash) AdminToken(ctx context.Context, client client.Client, namespace string) ([]byte, error)
AdminToken returns the admin API token for the Unleash instance.
func (*RemoteUnleash) ApiClient ¶
func (u *RemoteUnleash) ApiClient(ctx context.Context, client client.Client, namespace string) (*unleashclient.Client, error)
ApiClient returns an Unleash API client for the Unleash instance.
func (*RemoteUnleash) DeepCopy ¶
func (in *RemoteUnleash) DeepCopy() *RemoteUnleash
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteUnleash.
func (*RemoteUnleash) DeepCopyInto ¶
func (in *RemoteUnleash) DeepCopyInto(out *RemoteUnleash)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemoteUnleash) DeepCopyObject ¶
func (in *RemoteUnleash) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RemoteUnleash) IsReady ¶
func (u *RemoteUnleash) IsReady() bool
IsReady returns true if the Unleash instance is ready. We define ready as having both the Available and Connection conditions set to true.
func (*RemoteUnleash) NamespacedName ¶
func (u *RemoteUnleash) NamespacedName() types.NamespacedName
NamespacedName returns the namespaced name of the Unleash instance.
func (*RemoteUnleash) URL ¶
func (u *RemoteUnleash) URL() string
URL returns the URL of the Unleash instance.
type RemoteUnleashList ¶
type RemoteUnleashList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []RemoteUnleash `json:"items"`
}
RemoteUnleashList contains a list of RemoteUnleash +kubebuilder:object:root=true
func (*RemoteUnleashList) DeepCopy ¶
func (in *RemoteUnleashList) DeepCopy() *RemoteUnleashList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteUnleashList.
func (*RemoteUnleashList) DeepCopyInto ¶
func (in *RemoteUnleashList) DeepCopyInto(out *RemoteUnleashList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemoteUnleashList) DeepCopyObject ¶
func (in *RemoteUnleashList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RemoteUnleashSecret ¶
type RemoteUnleashSecret struct {
// Name is the name of the secret containing the Unleash instance's API token.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^unleasherator-.+$`
Name string `json:"name"`
// TokenKey is the key of the secret containing the Unleash instance's API token.
// +kubebuilder:validation:Optional
// +kubebuilder:default=token
Key string `json:"key,omitempty"`
// Namespace is the namespace of the secret containing the Unleash instance's API token.
// +kubebuilder:validation:Optional
Namespace string `json:"namespace,omitempty"`
}
RemoteUnleashSecret defines the secret containing the Unleash instance's API token.
func (*RemoteUnleashSecret) DeepCopy ¶
func (in *RemoteUnleashSecret) DeepCopy() *RemoteUnleashSecret
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteUnleashSecret.
func (*RemoteUnleashSecret) DeepCopyInto ¶
func (in *RemoteUnleashSecret) DeepCopyInto(out *RemoteUnleashSecret)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteUnleashServer ¶
type RemoteUnleashServer struct {
// URL is the URL of the Unleash instance.
// The URL must be a valid URL, and must start with either http:// or https://.
// The URL must be to the root of the Unleash instance, and must not contain any path.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^https?://`
URL string `json:"url"`
}
RemoteUnleashServer defines the Unleash instance this token is for.
func (*RemoteUnleashServer) DeepCopy ¶
func (in *RemoteUnleashServer) DeepCopy() *RemoteUnleashServer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteUnleashServer.
func (*RemoteUnleashServer) DeepCopyInto ¶
func (in *RemoteUnleashServer) DeepCopyInto(out *RemoteUnleashServer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteUnleashSpec ¶
type RemoteUnleashSpec struct {
// Server is the Unleash instance this token is for.
// +kubebuilder:validation:Required
Server RemoteUnleashServer `json:"unleashInstance"`
// Secret is the secret containing the Unleash instance's API token.
// +kubebuilder:validation:Required
AdminSecret RemoteUnleashSecret `json:"adminSecret"`
}
RemoteUnleashSpec defines the desired state of RemoteUnleash
func (*RemoteUnleashSpec) DeepCopy ¶
func (in *RemoteUnleashSpec) DeepCopy() *RemoteUnleashSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteUnleashSpec.
func (*RemoteUnleashSpec) DeepCopyInto ¶
func (in *RemoteUnleashSpec) DeepCopyInto(out *RemoteUnleashSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteUnleashStatus ¶
type RemoteUnleashStatus struct {
// Represents the observations of a RemoteUnleash's current state.
// RemoteUnleash.status.conditions.type are: "Reconciled", "Connected", and "Degraded"
// RemoteUnleash.status.conditions.status are one of True, False, Unknown.
// RemoteUnleash.status.conditions.reason the value should be a CamelCase string and producers of specific
// condition types may define expected values and meanings for this field, and whether the values
// are considered a guaranteed API.
// RemoteUnleash.status.conditions.Message is a human readable message indicating details about the transition.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Reconciled is true when the Unleash resources hav been reconciled
// successfully.
// This is used for kubectl printing purposes. Rather than relying on this
// value, check the conditions instead.
// +kubebuilder:default=false
Reconciled bool `json:"reconciled,omitempty"`
// Connected is true when the Unleash resource has been connected to the Unleash server
// This is used for kubectl printing purposes. Rather than relying on this
// value, check the conditions instead.
// +kubebuilder:default=false
Connected bool `json:"connected,omitempty"`
// Version is the reported version of the Unleash server
// +kubebuilder:default="unknown"
Version string `json:"version,omitempty"`
}
RemoteUnleashStatus defines the observed state of RemoteUnleash
func (*RemoteUnleashStatus) DeepCopy ¶
func (in *RemoteUnleashStatus) DeepCopy() *RemoteUnleashStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteUnleashStatus.
func (*RemoteUnleashStatus) DeepCopyInto ¶
func (in *RemoteUnleashStatus) DeepCopyInto(out *RemoteUnleashStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Unleash ¶
type Unleash struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec UnleashSpec `json:"spec,omitempty"`
Status UnleashStatus `json:"status,omitempty"`
}
Unleash defines an Unleash instance +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="API Ingress",type=string,JSONPath=`.spec.apiIngress.host` +kubebuilder:printcolumn:name="Web Ingress",type=string,JSONPath=`.spec.webIngress.host` +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.status.version` +kubebuilder:printcolumn:name="Reconciled",type=boolean,JSONPath=`.status.reconciled` +kubebuilder:printcolumn:name="Connected",type=boolean,JSONPath=`.status.connected`
func (*Unleash) AdminToken ¶
func (*Unleash) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Unleash.
func (*Unleash) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Unleash) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Unleash) GetInstanceSecretName ¶
func (*Unleash) GetOperatorSecretName ¶
func (*Unleash) IsReady ¶
IsReady returns true if the Unleash instance is ready. We define ready as having both the Available and Connection conditions set to true.
func (*Unleash) NamespacedInstanceSecretName ¶
func (u *Unleash) NamespacedInstanceSecretName() types.NamespacedName
func (*Unleash) NamespacedName ¶
func (u *Unleash) NamespacedName() types.NamespacedName
func (*Unleash) NamespacedNameWithSuffix ¶
func (u *Unleash) NamespacedNameWithSuffix(suffix string) types.NamespacedName
func (*Unleash) NamespacedOperatorSecretName ¶
func (u *Unleash) NamespacedOperatorSecretName(namespace string) types.NamespacedName
func (*Unleash) PublicApiURL ¶
func (*Unleash) PublicWebURL ¶
type UnleashDatabaseConfig ¶
type UnleashDatabaseConfig struct {
// SecretName is the name of the secret containing the database credentials
SecretName string `json:"secretName,omitempty"`
// SecretURLKey is the key in the secret containing the database URL
SecretURLKey string `json:"secretURLKey,omitempty"`
// SecretUserKey is the key in the secret containing the database user
SecretUserKey string `json:"secretUserKey,omitempty"`
// SecretPassKey is the key in the secret containing the database password
SecretPassKey string `json:"secretPassKey,omitempty"`
// SecretPortKey is the key in the secret containing the database port
SecretPortKey string `json:"secretPortKey,omitempty"`
// SecretHostKey is the key in the secret containing the database host
SecretHostKey string `json:"secretHostKey,omitempty"`
// SecretDatabaseNameKey is the key in the secret containing the database name
SecretDatabaseNameKey string `json:"secretDatabaseNameKey,omitempty"`
// SecretSSLKey is the key in the secret containing the database SSL configuration
SecretSSLKey string `json:"secretSSLKey,omitempty"`
// URL defines the database URL
URL string `json:"url,omitempty"`
// DatabaseName defines the name of the database to be used
DatabaseName string `json:"databaseName,omitempty"`
// Host defines the host of the database to be used
Host string `json:"host,omitempty"`
// Port defines the port of the database to be used
Port string `json:"port,omitempty"`
// Username defines the username of the database to be used
User string `json:"user,omitempty"`
// SSL defines if the database connection should use SSL
SSL string `json:"ssl,omitempty"`
}
UnleashDatabaseConfig defines the database configuration
func (*UnleashDatabaseConfig) DeepCopy ¶
func (in *UnleashDatabaseConfig) DeepCopy() *UnleashDatabaseConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashDatabaseConfig.
func (*UnleashDatabaseConfig) DeepCopyInto ¶
func (in *UnleashDatabaseConfig) DeepCopyInto(out *UnleashDatabaseConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashFederationConfig ¶
type UnleashFederationConfig struct {
// Enable enables Unleash federation
// +kubebuilder:default=false
Enabled bool `json:"enabled,omitempty"`
// Clusters are the clusters to federate to
// +kubebuilder:validation:Optional
Clusters []string `json:"clusters,omitempty"`
// Namespaces are the namespaces to federate to
// +kubebuilder:validation:Optional
Namespaces []string `json:"namespaces,omitempty"`
// SecretNonce is the shared secret used for federation
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Pattern=`^[a-z0-9]+$`
SecretNonce string `json:"secretNonce,omitempty"`
}
UnleashFederationConfig defines the configuration for Unleash federation
func (*UnleashFederationConfig) DeepCopy ¶
func (in *UnleashFederationConfig) DeepCopy() *UnleashFederationConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashFederationConfig.
func (*UnleashFederationConfig) DeepCopyInto ¶
func (in *UnleashFederationConfig) DeepCopyInto(out *UnleashFederationConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashIngressConfig ¶
type UnleashIngressConfig struct {
// Enable enables the ingress
// +kubebuilder:default=false
Enabled bool `json:"enabled,omitempty"`
// Host is the hostname to use for the ingress
// +kubebuilder:validation:Optional
Host string `json:"host,omitempty"`
// Path is the path to use for the ingress
// +kubebuilder:validation:Optional
// +kubebuilder:default="/"
Path string `json:"path,omitempty"`
// TLS is the TLS configuration to use for the ingress
// +kubebuilder:validation:Optional
TLS *UnleashIngressTLSConfig `json:"tls,omitempty"`
// Annotations is a map of annotations to add to the ingress
// +kubebuilder:validation:Optional
Annotations map[string]string `json:"annotations,omitempty"`
// Class is the ingress class to use for the ingress
// +kubebuilder:validation:Optional
Class string `json:"class,omitempty"`
}
UnleashIngressConfig defines the ingress configuration
func (*UnleashIngressConfig) DeepCopy ¶
func (in *UnleashIngressConfig) DeepCopy() *UnleashIngressConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashIngressConfig.
func (*UnleashIngressConfig) DeepCopyInto ¶
func (in *UnleashIngressConfig) DeepCopyInto(out *UnleashIngressConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashIngressTLSConfig ¶
type UnleashIngressTLSConfig struct {
// SecretName is the name of the secret containing the TLS certificate
// +kubebuilder:validation:Required
SecretName string `json:"secretName,omitempty"`
// SecretCertKey is the key in the secret containing the TLS certificate
// +kubebuilder:validation:Required
SecretCertKey string `json:"secretCertKey,omitempty"`
// SecretKeyKey is the key in the secret containing the TLS key
// +kubebuilder:validation:Required
SecretKeyKey string `json:"secretKeyKey,omitempty"`
}
UnleashIngressTLSConfig defines the TLS configuration for the ingress
func (*UnleashIngressTLSConfig) DeepCopy ¶
func (in *UnleashIngressTLSConfig) DeepCopy() *UnleashIngressTLSConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashIngressTLSConfig.
func (*UnleashIngressTLSConfig) DeepCopyInto ¶
func (in *UnleashIngressTLSConfig) DeepCopyInto(out *UnleashIngressTLSConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashList ¶
type UnleashList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Unleash `json:"items"`
}
UnleashList contains a list of Unleash +kubebuilder:object:root=true
func (*UnleashList) DeepCopy ¶
func (in *UnleashList) DeepCopy() *UnleashList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashList.
func (*UnleashList) DeepCopyInto ¶
func (in *UnleashList) DeepCopyInto(out *UnleashList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UnleashList) DeepCopyObject ¶
func (in *UnleashList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type UnleashNetworkPolicyConfig ¶
type UnleashNetworkPolicyConfig struct {
// Enable enables the network policy
// +kubebuilder:default=true
Enabled bool `json:"enabled,omitempty"`
// AllowDNS enables DNS traffic
// +kubebuilder:default=true
AllowDNS bool `json:"allowDNS,omitempty"`
// AllowAllFromCluster enables all ingress traffic from the same cluster
// +kubebuilder:default=false
AllowAllFromCluster bool `json:"allowAll,omitempty"`
// AllowAllFromSameNamespace enables all ingress traffic from the same namespace
// +kubebuilder:default=false
AllowAllFromSameNamespace bool `json:"allowAllSameNamespace,omitempty"`
// AllowAllFromNamespaces is a list of namespaces to allow ingress traffic from
// +kubebuilder:validation:Optional
AllowAllFromNamespaces []string `json:"allowFromNamespaces,omitempty"`
// ExtraIngressRules is a list of extra ingress rules to add to the network policy
// +kubebuilder:validation:Optional
ExtraIngressRules []networkingv1.NetworkPolicyIngressRule `json:"extraIngressRules,omitempty"`
// ExtraEgressRules is a list of extra egress rules to add to the network policy
// +kubebuilder:validation:Optional
ExtraEgressRules []networkingv1.NetworkPolicyEgressRule `json:"extraEgressRules,omitempty"`
}
UnleashNetworkPolicyConfig defines the network policy configuration
func (*UnleashNetworkPolicyConfig) DeepCopy ¶
func (in *UnleashNetworkPolicyConfig) DeepCopy() *UnleashNetworkPolicyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashNetworkPolicyConfig.
func (*UnleashNetworkPolicyConfig) DeepCopyInto ¶
func (in *UnleashNetworkPolicyConfig) DeepCopyInto(out *UnleashNetworkPolicyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashPrometheusConfig ¶
type UnleashPrometheusConfig struct {
// Enable enables the prometheus metrics endpoint
// +kubebuilder:default=true
Enabled bool `json:"enabled,omitempty"`
}
UnleashPrometheusConfig defines the prometheus configuration
func (*UnleashPrometheusConfig) DeepCopy ¶
func (in *UnleashPrometheusConfig) DeepCopy() *UnleashPrometheusConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashPrometheusConfig.
func (*UnleashPrometheusConfig) DeepCopyInto ¶
func (in *UnleashPrometheusConfig) DeepCopyInto(out *UnleashPrometheusConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashSpec ¶
type UnleashSpec struct {
// Size is the size of the Unleash deployment.
// +kubebuilder:default=1
Size int32 `json:"size,omitempty"`
// CustomImage points to a custom image, which overrides all other version settings.
// Use at your own risk.
// +kubebuilder:validation:Optional
CustomImage string `json:"customImage,omitempty"`
// Prometheus defines the Prometheus metrics collection configuration.
// +kubebuilder:validation:Optional
Prometheus UnleashPrometheusConfig `json:"prometheus,omitempty"`
// Database is the database configuration.
// +kubebuilder:validation:Required
Database UnleashDatabaseConfig `json:"database,omitempty"`
// WebIngress defines the ingress configuration for the web interface.
// +kubebuilder:validation:Optional
WebIngress UnleashIngressConfig `json:"webIngress,omitempty"`
// ApiIngress defines the ingress for the endpoints of Unleash.
// +kubebuilder:validation:Optional
ApiIngress UnleashIngressConfig `json:"apiIngress,omitempty"`
// NetworkPolicy defines the network policy configuration.
// +kubebuilder:validation:Optional
NetworkPolicy UnleashNetworkPolicyConfig `json:"networkPolicy,omitempty"`
// ExtraEnvVars is a list of extra environment variables to add to the deployment.
// +kubebuilder:validation:Optional
ExtraEnvVars []corev1.EnvVar `json:"extraEnvVars,omitempty"`
// ExtraVolumes is a list of extra volume mounts to add to the deployment.
// +kubebuilder:validation:Optional
ExtraVolumes []corev1.Volume `json:"extraVolumes,omitempty"`
// ExtraVolumeMounts is a list of extra volume mounts to add to the deployment.
// +kubebuilder:validation:Optional
ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"`
// ExtraContainers is a list of extra containers to add to the deployment.
// +kubebuilder:validation:Optional
ExtraContainers []corev1.Container `json:"extraContainers,omitempty"`
// ExistingServiceAccountName is the name of an already existing Kubernetes service account.
// +kubebuilder:validation:Optional
ExistingServiceAccountName string `json:"existingServiceAccountName,omitempty"`
// Resources are the resource requests and limits for the Unleash deployment.
// +kubebuilder:validation:Optional
// +kubebuilder:default:={requests: {cpu: "300m", memory: "256Mi"}, limits: { memory: "512Mi"}}
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// Federation is the configuration for Unleash federation.
// +kubebuilder:validation:Optional
Federation UnleashFederationConfig `json:"federation,omitempty"`
// PodAnnotations are additional annotations to add to the Unleash pods.
// +kubebuilder:validation:Optional
PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
// PodLabels are additional labels to add to the Unleash pods.
// +kubebuilder:validation:Optional
PodLabels map[string]string `json:"podLabels,omitempty"`
}
UnleashSpec defines the desired state of Unleash UnleashSpec represents the specification for an Unleash deployment.
func (*UnleashSpec) DeepCopy ¶
func (in *UnleashSpec) DeepCopy() *UnleashSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashSpec.
func (*UnleashSpec) DeepCopyInto ¶
func (in *UnleashSpec) DeepCopyInto(out *UnleashSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnleashStatus ¶
type UnleashStatus struct {
// Represents the observations of a Unleash's current state.
// Unleash.status.conditions.type are: "Reconciled", "Connected", and "Degraded"
// Unleash.status.conditions.status are one of True, False, Unknown.
// Unleash.status.conditions.reason the value should be a CamelCase string and producers of specific
// condition types may define expected values and meanings for this field, and whether the values
// are considered a guaranteed API.
// Unleash.status.conditions.Message is a human readable message indicating details about the transition.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Reconciled is true when the Unleash resources hav been reconciled
// successfully.
// This is used for kubectl printing purposes. Rather than relying on this
// value, check the conditions instead.
// +kubebuilder:default=false
Reconciled bool `json:"reconciled,omitempty"`
// Connected is true when the Unleash resource has been connected to the Unleash server
// This is used for kubectl printing purposes. Rather than relying on this
// value, check the conditions instead.
// +kubebuilder:default=false
Connected bool `json:"connected,omitempty"`
// Version is the reported version of the Unleash server
// +kubebuilder:default="unknown"
Version string `json:"version,omitempty"`
}
UnleashStatus defines the observed state of Unleash
func (*UnleashStatus) DeepCopy ¶
func (in *UnleashStatus) DeepCopy() *UnleashStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnleashStatus.
func (*UnleashStatus) DeepCopyInto ¶
func (in *UnleashStatus) DeepCopyInto(out *UnleashStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.