Documentation ¶
Overview ¶
+kubebuilder:object:root=true +kubebuidler:object:generate:=true
Index ¶
- Constants
- Variables
- type ByAlphabetical
- type Features
- type GroupVersionKind
- type JSONArray
- type JobReference
- func (in *JobReference) DeepCopy() *JobReference
- func (in *JobReference) DeepCopyInto(out *JobReference)
- func (j *JobReference) IsDone() bool
- func (j *JobReference) IsFailed() bool
- func (j *JobReference) IsSuccessful() bool
- func (j *JobReference) NamespacedName() types.NamespacedName
- func (j *JobReference) SetFromJob(job *batchv1.Job)
- type MeterDefPrometheusLabels
- func (m *MeterDefPrometheusLabels) Defaults()
- func (m *MeterDefPrometheusLabels) FromLabels(labels interface{}) error
- func (m *MeterDefPrometheusLabels) Namespace() string
- func (m *MeterDefPrometheusLabels) PrintTemplate(values *ReportLabels, pair model.SamplePair) (*MeterDefPrometheusLabelsTemplated, error)
- func (m *MeterDefPrometheusLabels) ToLabels() (map[string]string, error)
- type MeterDefPrometheusLabelsTemplated
- type MeterDefinitionCatalogServerConfig
- type MetricPeriod
- type MetricType
- type NamespacedNameReference
- type PodReference
- type ReportLabels
- type ReportTemplater
- type Result
- type ResultValues
- type ServiceMonitorReference
- type ServiceReference
- type Target
- type ToPrometheusLabels
- type WorkloadResource
- type WorkloadType
Constants ¶
const ( MeterDefConditionTypeHasResult status.ConditionType = "FoundMatches" MeterDefConditionReasonNoResultsInStatus status.ConditionReason = "No results in status" MeterDefConditionReasonResultsInStatus status.ConditionReason = "Results in status" MeterDefConditionTypeReporting status.ConditionType = "Reporting" MeterDefConditionReasonNotReporting status.ConditionReason = "Not Reporting" MeterDefConditionReasonIsReporting status.ConditionReason = "Is Reporting" MeterDefConditionTypeSignatureVerified status.ConditionType = "SignatureVerified" MeterDefConditionReasonSignatureUnverified status.ConditionReason = "Signature unverified" MeterDefConditionReasonSignatureVerified status.ConditionReason = "Signature verified" MeterDefConditionReasonSignatureVerificationFailed status.ConditionReason = "Signature verification failed" )
const ( WorkloadTypePod WorkloadType = "Pod" WorkloadTypeService WorkloadType = "Service" WorkloadTypePVC WorkloadType = "PersistentVolumeClaim" MetricTypeBillable MetricType = "billable" MetricTypeLicense MetricType = "license" MetricTypeAdoption MetricType = "adoption" MetricTypeEmpty MetricType = "" MetricTypeInfrastructure MetricType = "infrastructure" )
Variables ¶
var ( MeterDefConditionNoResults = status.Condition{ Type: MeterDefConditionTypeHasResult, Status: corev1.ConditionFalse, Reason: MeterDefConditionReasonNoResultsInStatus, Message: "Meter definition has no results yet.", } MeterDefConditionHasResults = status.Condition{ Type: MeterDefConditionTypeHasResult, Status: corev1.ConditionTrue, Reason: MeterDefConditionReasonResultsInStatus, Message: "Meter definition has results.", } MeterDefConditionNotReporting = status.Condition{ Type: MeterDefConditionTypeReporting, Status: corev1.ConditionFalse, Reason: MeterDefConditionReasonNotReporting, Message: "Prometheus is not reporting on MeterDefinition. Label name is not present.", } MeterDefConditionReporting = status.Condition{ Type: MeterDefConditionTypeReporting, Status: corev1.ConditionTrue, Reason: MeterDefConditionReasonIsReporting, Message: "Prometheus is reporting on MeterDefinition. Label name is present.", } // MeterDefinition was not signed. No signing annotations MeterDefConditionSignatureUnverified = status.Condition{ Type: MeterDefConditionTypeSignatureVerified, Status: corev1.ConditionFalse, Reason: MeterDefConditionReasonSignatureUnverified, Message: "Meter definition unsigned and unverified", } // MeterDefinition was signed and signature verified MeterDefConditionSignatureVerified = status.Condition{ Type: MeterDefConditionTypeSignatureVerified, Status: corev1.ConditionTrue, Reason: MeterDefConditionReasonSignatureVerified, Message: "Meter definition signature verified.", } // MeterDefinition was signed and signature verification failed MeterDefConditionSignatureVerificationFailed = status.Condition{ Type: MeterDefConditionTypeSignatureVerified, Status: corev1.ConditionFalse, Reason: MeterDefConditionReasonSignatureVerificationFailed, Message: "Meter definition signature verification failed.", } )
Functions ¶
This section is empty.
Types ¶
type ByAlphabetical ¶
type ByAlphabetical []WorkloadResource
func (ByAlphabetical) Len ¶
func (a ByAlphabetical) Len() int
func (ByAlphabetical) Less ¶
func (a ByAlphabetical) Less(i, j int) bool
func (ByAlphabetical) Swap ¶
func (a ByAlphabetical) Swap(i, j int)
type Features ¶
type Features struct { // Deployment represents the enablement of the razee deployment, defaults to true when not set // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable Razee deployment?" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="hidden" // +optional Deployment *bool `json:"deployment,omitempty"` // Registration represents the enablement of the registration watchkeeper deployment, defaults to true when not set // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable Watchkeeper deployment?" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="hidden" // +optional Registration *bool `json:"registration,omitempty"` // [DEPRECATED] EnableMeterDefinitionCatalogServer represents the enablement of the meterdefinition catalog server, defaults to true when not set // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable MeterDefinition Catalog Server Deployment" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch" // +optional EnableMeterDefinitionCatalogServer *bool `json:"meterDefinitionCatalogServer,omitempty"` }
Feature represents a list of features that can be enabled or disabled. +kubebuilder:object:generate:=true
func (*Features) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Features.
func (*Features) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupVersionKind ¶
type GroupVersionKind struct { // APIVersion of the CRD // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="text" APIVersion string `json:"apiVersion"` // Kind of the CRD // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="text" Kind string `json:"kind"` }
+kubebuilder:object:generate:=true
func NewGroupVersionKind ¶
func NewGroupVersionKind(t interface{}, scheme *runtime.Scheme) (*GroupVersionKind, error)
func NewPredefinedGroupVersionKind ¶
func NewPredefinedGroupVersionKind(obj interface{}) (*GroupVersionKind, error)
func (*GroupVersionKind) DeepCopy ¶
func (in *GroupVersionKind) DeepCopy() *GroupVersionKind
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionKind.
func (*GroupVersionKind) DeepCopyInto ¶
func (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GroupVersionKind) String ¶
func (g GroupVersionKind) String() string
type JSONArray ¶
type JSONArray []string
func (JSONArray) MarshalText ¶
func (*JSONArray) UnmarshalText ¶
type JobReference ¶
type JobReference struct { // Namespace of the job // Required Namespace string `json:"namespace"` // Name of the job // Required Name string `json:"name"` // Represents time when the job was acknowledged by the job controller. // It is not guaranteed to be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. // +optional StartTime *metav1.Time `json:"startTime,omitempty" protobuf:"bytes,2,opt,name=startTime"` // Represents time when the job was completed. It is not guaranteed to // be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. // +optional CompletionTime *metav1.Time `json:"completionTime,omitempty" protobuf:"bytes,3,opt,name=completionTime"` // The number of actively running pods. // +optional Active *int32 `json:"active,omitempty" protobuf:"varint,4,opt,name=active"` // The number of pods which reached phase Succeeded. // +optional Succeeded *int32 `json:"succeeded,omitempty" protobuf:"varint,5,opt,name=succeeded"` // The number of pods which reached phase Failed. // +optional Failed *int32 `json:"failed,omitempty" protobuf:"varint,6,opt,name=failed"` // Specifies the number of retries before marking this job failed. // Defaults to 6 // +optional BackoffLimit *int32 `json:"backoffLimit,omitempty" protobuf:"varint,7,opt,name=backoffLimit"` // JobSuccess is the boolean value set if the job succeeded // +optional JobSuccess bool `json:"jobSuccess,omitempty"` // JobFailed is the boolean value set if the job failed // +optional JobFailed bool `json:"jobFailed,omitempty"` }
JobStatus represents the current job for the report and it's status. +kubebuilder:object:generate:=true
func (*JobReference) DeepCopy ¶
func (in *JobReference) DeepCopy() *JobReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobReference.
func (*JobReference) DeepCopyInto ¶
func (in *JobReference) DeepCopyInto(out *JobReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JobReference) IsDone ¶
func (j *JobReference) IsDone() bool
func (*JobReference) IsFailed ¶
func (j *JobReference) IsFailed() bool
func (*JobReference) IsSuccessful ¶
func (j *JobReference) IsSuccessful() bool
func (*JobReference) NamespacedName ¶
func (j *JobReference) NamespacedName() types.NamespacedName
func (*JobReference) SetFromJob ¶
func (j *JobReference) SetFromJob(job *batchv1.Job)
type MeterDefPrometheusLabels ¶
type MeterDefPrometheusLabels struct { UID string `json:"meter_definition_uid" mapstructure:"meter_definition_uid"` MeterDefName string `json:"name" mapstructure:"name"` MeterDefNamespace string `json:"namespace" mapstructure:"namespace"` // UserWorkloadMonitoring will exported_ overlapping labels ExportedMeterDefNamespace string `json:"exported_namespace,omitempty" mapstructure:"exported_namespace"` // Deprecated: metric is now the primary name WorkloadName string `json:"workload_name" mapstructure:"workload_name" template:""` WorkloadType WorkloadType `json:"workload_type" mapstructure:"workload_type"` MeterGroup string `json:"meter_group" mapstructure:"meter_group" template:""` MeterKind string `json:"meter_kind" mapstructure:"meter_kind" template:""` Metric string `json:"metric_label" mapstructure:"metric_label" template:""` MetricAggregation string `json:"metric_aggregation,omitempty" mapstructure:"metric_aggregation"` MetricPeriod *MetricPeriod `json:"metric_period,omitempty" mapstructure:"metric_period"` MetricQuery string `json:"metric_query" mapstructure:"metric_query"` MetricWithout JSONArray `json:"metric_without" mapstructure:"metric_without"` MetricGroupBy JSONArray `json:"metric_group_by,omitempty" mapstructure:"metric_group_by"` MetricType MetricType `json:"metric_type,omitempty" mapstructure:"metric_type"` ResourceName string `json:"resource_name,omitempty"` ResourceNamespace string `json:"resource_namespace,omitempty"` Label string `json:"label,omitempty" mapstructure:"label,omitempty" template:""` Unit string `json:"unit,omitempty" mapstructure:"unit,omitempty" template:""` DisplayName string `json:"display_name,omitempty" mapstructure:"display_name,omitempty" template:""` MeterDescription string `json:"meter_description,omitempty" mapstructure:"meter_description,omitempty" template:""` ValueLabelOverride string `json:"value_label_override,omitempty" mapstructure:"value_label_override,omitempty" template:""` DateLabelOverride string `json:"date_label_override,omitempty" mapstructure:"date_label_override,omitempty" template:""` }
func (*MeterDefPrometheusLabels) Defaults ¶
func (m *MeterDefPrometheusLabels) Defaults()
func (*MeterDefPrometheusLabels) FromLabels ¶
func (m *MeterDefPrometheusLabels) FromLabels(labels interface{}) error
func (*MeterDefPrometheusLabels) Namespace ¶
func (m *MeterDefPrometheusLabels) Namespace() string
UserWorkloadMonitoring will exported_ overlapping labels
func (*MeterDefPrometheusLabels) PrintTemplate ¶
func (m *MeterDefPrometheusLabels) PrintTemplate( values *ReportLabels, pair model.SamplePair, ) (*MeterDefPrometheusLabelsTemplated, error)
type MeterDefPrometheusLabelsTemplated ¶
type MeterDefPrometheusLabelsTemplated struct { *MeterDefPrometheusLabels IntervalStart, IntervalEnd time.Time Value string LabelMap map[string]interface{} // contains filtered or unexported fields }
MeterDefPrometheusLabelsTemplated is the values of a meter definition templated and with values set ready to be added.
func (*MeterDefPrometheusLabelsTemplated) Hash ¶
func (m *MeterDefPrometheusLabelsTemplated) Hash() string
type MeterDefinitionCatalogServerConfig ¶
type MeterDefinitionCatalogServerConfig struct { // SyncCommunityMeterDefinitions represents the enablement of logic that will sync community meterdefinitions from the meterdefinition catalog, defaults to true when not set // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Sync Community MeterDefinitions?" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch" // +optional SyncCommunityMeterDefinitions bool `json:"syncCommunityMeterDefinitions"` // SyncSystemMeterDefinitions represents the enablement of logic that will sync system meterdefinitions from the meterdefinition catalog, defaults to true when not set // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Sync System MeterDefinitions?" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch" // +optional SyncSystemMeterDefinitions bool `json:"syncSystemMeterDefinitions"` // DeployMeterDefinitionCatalogServer controls whether the deploymentconfig controller will deploy the resources needed // to create the Meterdefinition Catalog Server. // Setting DeployMeterDefinitionCatalogServer to "true" wil install a DeploymentConfig, ImageStream, and Service. // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Deploy Meterdefintion Catalog Server Resources?" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch" // +optional DeployMeterDefinitionCatalogServer bool `json:"deployMeterDefinitionCatalogServer"` }
TODO: not using omit empty here, we don't want these to default to false because the dc controller looks for false to uninstall [DEPRECATED] MeterDefinitionCatalogServerConfig represents a list of features that can be enabled or disabled for the Meterdefinition Catalog Server. +kubebuilder:object:generate:=true
func (*MeterDefinitionCatalogServerConfig) DeepCopy ¶
func (in *MeterDefinitionCatalogServerConfig) DeepCopy() *MeterDefinitionCatalogServerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeterDefinitionCatalogServerConfig.
func (*MeterDefinitionCatalogServerConfig) DeepCopyInto ¶
func (in *MeterDefinitionCatalogServerConfig) DeepCopyInto(out *MeterDefinitionCatalogServerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricPeriod ¶
func (MetricPeriod) MarshalJSON ¶
func (a MetricPeriod) MarshalJSON() ([]byte, error)
func (*MetricPeriod) UnmarshalJSON ¶
func (a *MetricPeriod) UnmarshalJSON(b []byte) error
type MetricType ¶
type MetricType string
func (MetricType) MarshalJSON ¶
func (a MetricType) MarshalJSON() ([]byte, error)
func (MetricType) String ¶
func (a MetricType) String() string
func (*MetricType) UnmarshalJSON ¶
func (a *MetricType) UnmarshalJSON(b []byte) error
type NamespacedNameReference ¶
type NamespacedNameReference struct { // Namespace of the resource // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true // +optional UID types.UID `json:"uid,omitempty"` // Namespace of the resource // Required // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Namespace string `json:"namespace"` // Name of the resource // Required // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Name string `json:"name"` // GroupVersionKind of the resource // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true // +optional *GroupVersionKind `json:"groupVersionKind,omitempty"` }
JobStatus represents the current job for the report and it's status. +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true +kubebuilder:object:generate:=true
func NamespacedNameFromMeta ¶
func NamespacedNameFromMeta(t client.Object) *NamespacedNameReference
func (*NamespacedNameReference) DeepCopy ¶
func (in *NamespacedNameReference) DeepCopy() *NamespacedNameReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedNameReference.
func (*NamespacedNameReference) DeepCopyInto ¶
func (in *NamespacedNameReference) DeepCopyInto(out *NamespacedNameReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NamespacedNameReference) ToTypes ¶
func (n *NamespacedNameReference) ToTypes() types.NamespacedName
type PodReference ¶
type PodReference struct { // Namespace of the job // Required Namespace string `json:"namespace"` // Name of the job // Required Name string `json:"name"` }
func (*PodReference) FromPod ¶
func (p *PodReference) FromPod(pod *corev1.Pod)
type ReportLabels ¶
type ReportLabels struct {
Label map[string]interface{}
}
type ReportTemplater ¶
type ReportTemplater struct {
// contains filtered or unexported fields
}
func NewTemplate ¶
func NewTemplate(promLabels *MeterDefPrometheusLabels) (*ReportTemplater, error)
func (*ReportTemplater) Execute ¶
func (r *ReportTemplater) Execute( promLabels *MeterDefPrometheusLabels, values *ReportLabels) error
type Result ¶
type Result struct { // MetricName is the identifier that you will use to identify your query // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true MetricName string `json:"metricName,omitempty"` // Query is the compiled query that is given to Prometheus // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Query string `json:"query,omitempty"` // Values are the results of the query // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Values []ResultValues `json:"values,omitempty"` }
Result is a result of a query defined on the meterdefinition. This will generate data for the previous hour on whichever workload you specify. This will allow you to check whether a query is working as intended. +k8s:openapi-gen=true +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true +kubebuilder:object:generate:=true
func (*Result) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Result.
func (*Result) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResultValues ¶
type ResultValues struct { Timestamp int64 `json:"timestamp"` Value string `json:"value"` Labels map[string]string `json:"labels,omitempty"` }
ResultValues will hold the results of the prometheus query +k8s:openapi-gen=true +kubebuilder:object:generate:=true
func (*ResultValues) DeepCopy ¶
func (in *ResultValues) DeepCopy() *ResultValues
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResultValues.
func (*ResultValues) DeepCopyInto ¶
func (in *ResultValues) DeepCopyInto(out *ResultValues)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceMonitorReference ¶
type ServiceReference ¶
type ServiceReference struct { // Namespace of the job // Required Namespace string `json:"namespace"` // Name of the job // Required Name string `json:"name"` // Port name is the name of the part to select // Required TargetPort intstr.IntOrString `json:"targetPort"` // TLS configuration to use when scraping the endpoint // Optional TLSConfig *monitoringv1.TLSConfig `json:"tlsConfig,omitempty"` // File to read bearer token for scraping targets. BearerTokenFile string `json:"bearerTokenFile,omitempty"` // Secret to mount to read bearer token for scraping targets. The secret // needs to be in the same namespace as the service monitor and accessible by // the Prometheus Operator. BearerTokenSecret corev1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // Optional BasicAuth *monitoringv1.TLSConfig `json:"basicAuth,omitempty"` }
+kubebuilder:object:generate:=true
func (*ServiceReference) DeepCopy ¶
func (in *ServiceReference) DeepCopy() *ServiceReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference.
func (*ServiceReference) DeepCopyInto ¶
func (in *ServiceReference) DeepCopyInto(out *ServiceReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Target ¶
type Target struct { Labels model.LabelSet `json:"labels"` ScrapeURL string `json:"scrapeUrl"` LastError string `json:"lastError"` LastScrape string `json:"lastScrape"` Health prometheusv1.HealthStatus `json:"health"` }
Target is used by meterbase as a list of prometheus activeTargets with failed health, without DiscoveredLabels +k8s:openapi-gen=true +kubebuilder:object:generate:=true
func (*Target) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Target.
func (*Target) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ToPrometheusLabels ¶
type WorkloadResource ¶
type WorkloadResource struct { // ReferencedWorkloadName is the name of the workload // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true ReferencedWorkloadName string `json:"referencedWorkloadName,omitempty"` // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true NamespacedNameReference `json:",inline"` }
WorkloadResource represents the resources associated to a workload +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true +kubebuilder:object:generate:=true
func NewWorkloadResource ¶
func NewWorkloadResource(obj interface{}) (*WorkloadResource, error)
func (*WorkloadResource) DeepCopy ¶
func (in *WorkloadResource) DeepCopy() *WorkloadResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadResource.
func (*WorkloadResource) DeepCopyInto ¶
func (in *WorkloadResource) DeepCopyInto(out *WorkloadResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkloadType ¶
type WorkloadType string
func (WorkloadType) MarshalJSON ¶
func (a WorkloadType) MarshalJSON() ([]byte, error)
func (*WorkloadType) UnmarshalJSON ¶
func (a *WorkloadType) UnmarshalJSON(b []byte) error