72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
/*
|
|
Copyright 2024 The Flux authors
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package v1beta2
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// CrossNamespaceSourceReference contains enough information to let you locate the
|
|
// typed Kubernetes resource object at cluster level.
|
|
type CrossNamespaceSourceReference struct {
|
|
// API version of the referent.
|
|
// +optional
|
|
APIVersion string `json:"apiVersion,omitempty"`
|
|
|
|
// Kind of the referent.
|
|
// +kubebuilder:validation:Enum=GitRepository
|
|
// +kubebuilder:default=GitRepository
|
|
// +required
|
|
Kind string `json:"kind"`
|
|
|
|
// Name of the referent.
|
|
// +required
|
|
Name string `json:"name"`
|
|
|
|
// Namespace of the referent, defaults to the namespace of the Kubernetes resource object that contains the reference.
|
|
// +optional
|
|
Namespace string `json:"namespace,omitempty"`
|
|
}
|
|
|
|
func (s *CrossNamespaceSourceReference) String() string {
|
|
if s.Namespace != "" {
|
|
return fmt.Sprintf("%s/%s/%s", s.Kind, s.Namespace, s.Name)
|
|
}
|
|
return fmt.Sprintf("%s/%s", s.Kind, s.Name)
|
|
}
|
|
|
|
// ImageRef represents an image reference.
|
|
type ImageRef struct {
|
|
// Name is the bare image's name.
|
|
// +required
|
|
Name string `json:"name"`
|
|
// Tag is the image's tag.
|
|
// +required
|
|
Tag string `json:"tag"`
|
|
// Digest is the image's digest.
|
|
// +optional
|
|
Digest string `json:"digest,omitempty"`
|
|
}
|
|
|
|
func (in *ImageRef) String() string {
|
|
res := in.Name + ":" + in.Tag
|
|
if in.Digest != "" {
|
|
res += "@" + in.Digest
|
|
}
|
|
return res
|
|
}
|