v1beta1

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the cluster.appuio.io v1beta1 API group +kubebuilder:object:generate=true +groupName=cluster.appuio.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "cluster.appuio.io", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type EmergencyAccount

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

	Spec   EmergencyAccountSpec   `json:"spec,omitempty"`
	Status EmergencyAccountStatus `json:"status,omitempty"`
}

EmergencyAccount is the Schema for the emergencyaccounts API

func (*EmergencyAccount) DeepCopy

func (in *EmergencyAccount) DeepCopy() *EmergencyAccount

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

func (*EmergencyAccount) DeepCopyInto

func (in *EmergencyAccount) DeepCopyInto(out *EmergencyAccount)

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

func (*EmergencyAccount) DeepCopyObject

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

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

type EmergencyAccountList

type EmergencyAccountList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EmergencyAccount `json:"items"`
}

EmergencyAccountList contains a list of EmergencyAccount

func (*EmergencyAccountList) DeepCopy

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

func (*EmergencyAccountList) DeepCopyInto

func (in *EmergencyAccountList) DeepCopyInto(out *EmergencyAccountList)

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

func (*EmergencyAccountList) DeepCopyObject

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

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

type EmergencyAccountSpec

type EmergencyAccountSpec struct {
	// ValidityDuration is the duration for which the tokens are valid.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	// +kubebuilder:default:="720h"
	ValidityDuration metav1.Duration `json:"validityDuration"`

	// MinValidityDurationLeft is the minimum duration the token must be valid.
	// A new token is created if the current token is not valid for this duration anymore.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	// +kubebuilder:default:="168h"
	// +kubebuilder:validation:Optional
	MinValidityDurationLeft metav1.Duration `json:"minValidityDurationLeft,omitempty"`

	// CheckInterval is the interval in which the tokens are checked for validity.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	// +kubebuilder:default:="5m"
	CheckInterval metav1.Duration `json:"checkInterval,omitempty"`
	// MinRecreateInterval is the minimum interval in which a new token is created.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	// +kubebuilder:default:="5m"
	MinRecreateInterval metav1.Duration `json:"minRecreateInterval,omitempty"`

	// TokenStore defines the stores the created tokens are stored in.
	// +kubebuilder:validation:MinItems=1
	TokenStores []TokenStoreSpec `json:"tokenStores,omitempty"`
}

EmergencyAccountSpec defines the desired state of EmergencyAccount

func (*EmergencyAccountSpec) DeepCopy

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

func (*EmergencyAccountSpec) DeepCopyInto

func (in *EmergencyAccountSpec) DeepCopyInto(out *EmergencyAccountSpec)

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

type EmergencyAccountStatus

type EmergencyAccountStatus struct {
	// LastTokenCreationTimestamp is the timestamp when the last token was created.
	LastTokenCreationTimestamp metav1.Time `json:"lastTokenCreationTimestamp,omitempty"`
	// Tokens is a list of tokens that have been created
	Tokens []TokenStatus `json:"tokens,omitempty"`
	// LastTokenStoreConfigurationHashes is the hash of the last token store configuration.
	// It is used to detect changes in the token store configuration.
	// A change in the configuration triggers the creation of a new token.
	LastTokenStoreHashes []TokenStoreHash `json:"lastTokenStoreConfigurationHashes,omitempty"`
}

EmergencyAccountStatus defines the observed state of EmergencyAccount

func (*EmergencyAccountStatus) DeepCopy

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

func (*EmergencyAccountStatus) DeepCopyInto

func (in *EmergencyAccountStatus) DeepCopyInto(out *EmergencyAccountStatus)

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

type LogStoreSpec

type LogStoreSpec struct {
	// AdditionalFields is a map of additional fields to log.
	AdditionalFields map[string]string `json:"additionalFields,omitempty"`
}

LogStoreSpec configures the log store. The log store outputs the token to the log but does not store it anywhere.

func (*LogStoreSpec) DeepCopy

func (in *LogStoreSpec) DeepCopy() *LogStoreSpec

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

func (*LogStoreSpec) DeepCopyInto

func (in *LogStoreSpec) DeepCopyInto(out *LogStoreSpec)

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

type S3EncryptionSpec added in v0.3.0

type S3EncryptionSpec struct {
	// Encrypt defines if the tokens should be encrypted.
	// If not set, the tokens are stored unencrypted.
	Encrypt bool `json:"encrypt,omitempty"`
	// PGPKeys is a list of PGP public keys to encrypt the tokens with.
	// At least one key must be given if encryption is enabled.
	PGPKeys []string `json:"pgpKeys,omitempty"`
}

func (*S3EncryptionSpec) DeepCopy added in v0.3.0

func (in *S3EncryptionSpec) DeepCopy() *S3EncryptionSpec

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

func (*S3EncryptionSpec) DeepCopyInto added in v0.3.0

func (in *S3EncryptionSpec) DeepCopyInto(out *S3EncryptionSpec)

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

type S3Spec added in v0.3.0

type S3Spec struct {
	// Endpoint is the S3 endpoint to use.
	Endpoint string `json:"endpoint"`
	// Bucket is the S3 bucket to use.
	Bucket string `json:"bucket"`

	// AccessKeyId and SecretAccessKey are the S3 credentials to use.
	AccessKeyId string `json:"accessKeyId"`
	// SecretAccessKey is the S3 secret access key to use.
	SecretAccessKey string `json:"secretAccessKey"`

	// Region is the AWS region to use.
	Region string `json:"region,omitempty"`
	// Insecure allows to use an insecure connection to the S3 endpoint.
	Insecure bool `json:"insecure,omitempty"`
}

func (*S3Spec) DeepCopy added in v0.3.0

func (in *S3Spec) DeepCopy() *S3Spec

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

func (*S3Spec) DeepCopyInto added in v0.3.0

func (in *S3Spec) DeepCopyInto(out *S3Spec)

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

type S3StoreSpec added in v0.3.0

type S3StoreSpec struct {
	// ObjectNameTemplate is the template for the object name to use.
	// Sprig functions can be used to generate the object name.
	// If not set, the object name is the name of the EmergencyAccount.
	// The name of the EmergencyAccount can be accessed with `{{ .Name }}`.
	// The namespace of the EmergencyAccount can be accessed with `{{ .Namespace }}`.
	// The full EmergencyAccount object can be accessed with `{{ .EmergencyAccount }}`.
	// Additional context can be passed with the `objectNameTemplateContext` field and is accessible with `{{ .Context.<key> }}`.
	// +kubebuilder:validation:Optional
	ObjectNameTemplate string `json:"objectNameTemplate,omitempty"`
	// ObjectNameTemplateContext is the additional context to use for the object name template.
	// +kubebuilder:validation:Optional
	ObjectNameTemplateContext map[string]string `json:"objectNameTemplateContext,omitempty"`

	S3 S3Spec `json:"s3"`
	// Encryption defines the encryption settings for the S3 store.
	// If not set, the tokens are stored unencrypted.
	// +kubebuilder:validation:Optional
	Encryption S3EncryptionSpec `json:"encryption,omitempty"`
}

S3StoreSpec configures the S3 store. The S3 store saves the tokens in an S3 bucket with optional encryption using PGP public keys.

func (*S3StoreSpec) DeepCopy added in v0.3.0

func (in *S3StoreSpec) DeepCopy() *S3StoreSpec

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

func (*S3StoreSpec) DeepCopyInto added in v0.3.0

func (in *S3StoreSpec) DeepCopyInto(out *S3StoreSpec)

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

type SecretStoreSpec

type SecretStoreSpec struct{}

SecretStoreSpec configures the secret store. The secret store saves the tokens in a secret in the same namespace as the EmergencyAccount.

func (*SecretStoreSpec) DeepCopy

func (in *SecretStoreSpec) DeepCopy() *SecretStoreSpec

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

func (*SecretStoreSpec) DeepCopyInto

func (in *SecretStoreSpec) DeepCopyInto(out *SecretStoreSpec)

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

type TokenStatus

type TokenStatus struct {
	// UID is the unique identifier of the token.
	// Currently only used for error messages.
	UID types.UID `json:"uid,omitempty"`
	// Refs holds references to the token in the configured stores.
	Refs []TokenStatusRef `json:"refs,omitempty"`
	// ExpirationTimestamp is the timestamp when the token expires
	ExpirationTimestamp metav1.Time `json:"expirationTimestamp"`
}

TokenStatus defines the observed state of the managed token

func (*TokenStatus) DeepCopy

func (in *TokenStatus) DeepCopy() *TokenStatus

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

func (*TokenStatus) DeepCopyInto

func (in *TokenStatus) DeepCopyInto(out *TokenStatus)

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

type TokenStatusRef

type TokenStatusRef struct {
	// Ref is a reference to the token. The used storage should be able to uniquely identify the token.
	// If no ref is given, the token is not checked for validity.
	// +kubebuilder:validation:Optional
	Ref string `json:"ref"`

	// Store is the name of the store the token is stored in.
	Store string `json:"store"`
}

func (*TokenStatusRef) DeepCopy

func (in *TokenStatusRef) DeepCopy() *TokenStatusRef

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

func (*TokenStatusRef) DeepCopyInto

func (in *TokenStatusRef) DeepCopyInto(out *TokenStatusRef)

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

type TokenStoreHash added in v0.4.0

type TokenStoreHash struct {
	// Name is the name of the store.
	Name string `json:"name"`
	// Sha256 is the hash of the store configuration.
	Sha256 string `json:"hash"`
}

func (*TokenStoreHash) DeepCopy added in v0.4.0

func (in *TokenStoreHash) DeepCopy() *TokenStoreHash

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

func (*TokenStoreHash) DeepCopyInto added in v0.4.0

func (in *TokenStoreHash) DeepCopyInto(out *TokenStoreHash)

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

type TokenStoreSpec

type TokenStoreSpec struct {
	// Name is the name of the store.
	// Must be unique within the EmergencyAccount
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// Type defines the type of the store to use.
	// Currently `secret`, `s3`, and `log` stores are supported.
	// The stores can be further configured in the corresponding storeSpec.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=secret;log;s3
	Type string `json:"type"`

	// SecretSpec configures the secret store.
	// The secret store saves the tokens in a secret in the same namespace as the EmergencyAccount.
	SecretSpec SecretStoreSpec `json:"secretStore,omitempty"`
	// LogSpec configures the log store.
	// The log store outputs the token to the log but does not store it anywhere.
	LogSpec LogStoreSpec `json:"logStore,omitempty"`
	// S3Spec configures the S3 store.
	// The S3 store saves the tokens in an S3 bucket.
	S3Spec S3StoreSpec `json:"s3Store,omitempty"`
}

TokenStore defines the store the created tokens are stored in

func (*TokenStoreSpec) DeepCopy

func (in *TokenStoreSpec) DeepCopy() *TokenStoreSpec

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

func (*TokenStoreSpec) DeepCopyInto

func (in *TokenStoreSpec) DeepCopyInto(out *TokenStoreSpec)

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

Jump to

Keyboard shortcuts

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