Documentation ¶
Index ¶
- Constants
- Variables
- func Diff(old, new Manifest, opts ...diff.Option) (*diff.Result, error)
- func FindReferencingConfigMapsInDeployment(d *appsv1.Deployment) []string
- func FindReferencingSecretsInDeployment(d *appsv1.Deployment) []string
- func HashManifests(manifests []Manifest) (string, error)
- func IsKubernetesBuiltInResource(apiVersion string) bool
- func MakeKubernetesResourceState(uid string, key ResourceKey, obj *unstructured.Unstructured, now time.Time) model.KubernetesResourceState
- type APIVersionKind
- type AppManifestsCache
- type Applier
- type DiffListChange
- type DiffListResult
- type DiffRenderOptions
- type Helm
- func (c *Helm) TemplateLocalChart(ctx context.Context, appName, appDir, namespace, chartPath string, ...) (string, error)
- func (c *Helm) TemplateRemoteChart(ctx context.Context, appName, appDir, namespace string, chart helmRemoteChart, ...) (string, error)
- func (c *Helm) TemplateRemoteGitChart(ctx context.Context, appName, appDir, namespace string, ...) (string, error)
- type Kubectl
- func (c *Kubectl) Apply(ctx context.Context, namespace string, manifest Manifest) (err error)
- func (c *Kubectl) Create(ctx context.Context, namespace string, manifest Manifest) (err error)
- func (c *Kubectl) Delete(ctx context.Context, namespace string, r ResourceKey) (err error)
- func (c *Kubectl) Replace(ctx context.Context, namespace string, manifest Manifest) (err error)
- type Kustomize
- type Manifest
- func LoadManifestsFromYAMLFile(path string) ([]Manifest, error)
- func LoadPlainYAMLManifests(dir string, names []string, configFileName string) ([]Manifest, error)
- func MakeManifest(key ResourceKey, u *unstructured.Unstructured) Manifest
- func ParseFromStructuredObject(s interface{}) (Manifest, error)
- func ParseManifests(data string) ([]Manifest, error)
- func (m Manifest) AddAnnotations(annotations map[string]string)
- func (m Manifest) AddStringMapValues(values map[string]string, fields ...string) error
- func (m Manifest) ConvertToStructuredObject(o interface{}) error
- func (m Manifest) Duplicate(name string) Manifest
- func (m Manifest) GetAnnotations() map[string]string
- func (m Manifest) GetNestedMap(fields ...string) (map[string]interface{}, error)
- func (m Manifest) GetNestedStringMap(fields ...string) (map[string]string, error)
- func (m Manifest) GetSpec() (interface{}, error)
- func (m Manifest) MarshalJSON() ([]byte, error)
- func (m Manifest) SetStructuredSpec(spec interface{}) error
- func (m Manifest) YamlBytes() ([]byte, error)
- type ManifestLoader
- type Provider
- type ResourceKey
- func (k ResourceKey) IsConfigMap() bool
- func (k ResourceKey) IsDeployment() bool
- func (k ResourceKey) IsEqualWithIgnoringNamespace(a ResourceKey) bool
- func (k ResourceKey) IsLess(a ResourceKey) bool
- func (k ResourceKey) IsLessWithIgnoringNamespace(a ResourceKey) bool
- func (k ResourceKey) IsReplicaSet() bool
- func (k ResourceKey) IsSecret() bool
- func (k ResourceKey) IsService() bool
- func (k ResourceKey) IsWorkload() bool
- func (k ResourceKey) IsZero() bool
- func (k ResourceKey) ReadableLogString() string
- func (k ResourceKey) ReadableString() string
- func (k ResourceKey) String() string
- type TemplatingMethod
Constants ¶
View Source
const ( LabelManagedBy = "pipecd.dev/managed-by" // Always be piped. LabelPiped = "pipecd.dev/piped" // The id of piped handling this application. LabelApplication = "pipecd.dev/application" // The application this resource belongs to. LabelCommitHash = "pipecd.dev/commit-hash" // Hash value of the deployed commit. LabelResourceKey = "pipecd.dev/resource-key" // The resource key generated by apiVersion, namespace and name. e.g. apps/v1/Deployment/namespace/demo-app LabelOriginalAPIVersion = "pipecd.dev/original-api-version" // The api version defined in git configuration. e.g. apps/v1 LabelIgnoreDriftDirection = "pipecd.dev/ignore-drift-detection" // Whether the drift detection should ignore this resource. LabelSyncReplace = "pipecd.dev/sync-by-replace" // Use replace instead of apply. AnnotationConfigHash = "pipecd.dev/config-hash" // The hash value of all mouting config resources. ManagedByPiped = "piped" IgnoreDriftDetectionTrue = "true" UseReplaceEnabled = "enabled" )
View Source
const ( KindDeployment = "Deployment" KindStatefulSet = "StatefulSet" KindDaemonSet = "DaemonSet" KindReplicaSet = "ReplicaSet" KindPod = "Pod" KindJob = "Job" KindCronJob = "CronJob" KindConfigMap = "ConfigMap" KindSecret = "Secret" KindPersistentVolume = "PersistentVolume" KindPersistentVolumeClaim = "PersistentVolumeClaim" KindService = "Service" KindIngress = "Ingress" KindServiceAccount = "ServiceAccount" KindRole = "Role" KindRoleBinding = "RoleBinding" KindClusterRole = "ClusterRole" KindClusterRoleBinding = "ClusterRoleBinding" KindNameSpace = "NameSpace" KindCustomResourceDefinition = "CustomResourceDefinition" DefaultNamespace = "default" )
Variables ¶
View Source
var (
ErrNotFound = errors.New("not found")
)
Functions ¶
func FindReferencingConfigMapsInDeployment ¶
func FindReferencingConfigMapsInDeployment(d *appsv1.Deployment) []string
func FindReferencingSecretsInDeployment ¶
func FindReferencingSecretsInDeployment(d *appsv1.Deployment) []string
func HashManifests ¶
HashManifests computes the hash of a list of manifests.
func MakeKubernetesResourceState ¶
func MakeKubernetesResourceState(uid string, key ResourceKey, obj *unstructured.Unstructured, now time.Time) model.KubernetesResourceState
Types ¶
type APIVersionKind ¶
type AppManifestsCache ¶
func (AppManifestsCache) Put ¶
func (c AppManifestsCache) Put(commit string, manifests []Manifest)
type Applier ¶
type Applier interface { // Apply does applying application manifests by using the tool specified in Input. Apply(ctx context.Context) error // ApplyManifest does applying the given manifest. ApplyManifest(ctx context.Context, manifest Manifest) error // CreateManifest does creating resource from given manifest. CreateManifest(ctx context.Context, manifest Manifest) error // ReplaceManifest does replacing resource from given manifest. ReplaceManifest(ctx context.Context, manifest Manifest) error // Delete deletes the given resource from Kubernetes cluster. Delete(ctx context.Context, key ResourceKey) error }
type DiffListResult ¶
type DiffListResult struct { Adds []Manifest Deletes []Manifest Changes []DiffListChange }
func (*DiffListResult) NoChange ¶
func (r *DiffListResult) NoChange() bool
func (*DiffListResult) Render ¶
func (r *DiffListResult) Render(opt DiffRenderOptions) string
type DiffRenderOptions ¶
type Helm ¶
type Helm struct {
// contains filtered or unexported fields
}
func (*Helm) TemplateLocalChart ¶
func (*Helm) TemplateRemoteChart ¶
func (*Helm) TemplateRemoteGitChart ¶
type Kubectl ¶
type Kubectl struct {
// contains filtered or unexported fields
}
func NewKubectl ¶
type Manifest ¶
type Manifest struct { Key ResourceKey // contains filtered or unexported fields }
func LoadPlainYAMLManifests ¶
func MakeManifest ¶
func MakeManifest(key ResourceKey, u *unstructured.Unstructured) Manifest
func ParseManifests ¶
func (Manifest) AddAnnotations ¶
func (Manifest) AddStringMapValues ¶
AddStringMapValues adds or overrides the given key-values into the string map that can be found at the specified fields.
func (Manifest) ConvertToStructuredObject ¶
func (Manifest) GetAnnotations ¶
func (Manifest) GetNestedMap ¶
func (Manifest) GetNestedStringMap ¶
func (Manifest) MarshalJSON ¶
func (Manifest) SetStructuredSpec ¶
type ManifestLoader ¶
type ManifestLoader interface { // LoadManifests renders and loads all manifests for application. LoadManifests(ctx context.Context) ([]Manifest, error) }
func NewManifestLoader ¶
func NewManifestLoader( appName, appDir, repoDir, configFileName string, input config.KubernetesDeploymentInput, gc gitClient, logger *zap.Logger, ) ManifestLoader
type ResourceKey ¶
func DecodeResourceKey ¶
func DecodeResourceKey(key string) (ResourceKey, error)
func MakeResourceKey ¶
func MakeResourceKey(obj *unstructured.Unstructured) ResourceKey
func (ResourceKey) IsConfigMap ¶
func (k ResourceKey) IsConfigMap() bool
func (ResourceKey) IsDeployment ¶
func (k ResourceKey) IsDeployment() bool
func (ResourceKey) IsEqualWithIgnoringNamespace ¶
func (k ResourceKey) IsEqualWithIgnoringNamespace(a ResourceKey) bool
IsEqualWithIgnoringNamespace checks whether the key is equal to the given key, but this ignores the comparation of the namesapce.
func (ResourceKey) IsLess ¶
func (k ResourceKey) IsLess(a ResourceKey) bool
IsLess reports whether the key should sort before the given key.
func (ResourceKey) IsLessWithIgnoringNamespace ¶
func (k ResourceKey) IsLessWithIgnoringNamespace(a ResourceKey) bool
IsLessWithIgnoringNamespace reports whether the key should sort before the given key, but this ignores the comparation of the namesapce.
func (ResourceKey) IsReplicaSet ¶
func (k ResourceKey) IsReplicaSet() bool
func (ResourceKey) IsSecret ¶
func (k ResourceKey) IsSecret() bool
func (ResourceKey) IsService ¶
func (k ResourceKey) IsService() bool
func (ResourceKey) IsWorkload ¶
func (k ResourceKey) IsWorkload() bool
func (ResourceKey) IsZero ¶
func (k ResourceKey) IsZero() bool
func (ResourceKey) ReadableLogString ¶
func (k ResourceKey) ReadableLogString() string
TODO: Ensure the ResourceKey's Namespace used for Kubernetes diff detection works with the current ResourceKey Namespace loading model
func (ResourceKey) ReadableString ¶
func (k ResourceKey) ReadableString() string
func (ResourceKey) String ¶
func (k ResourceKey) String() string
type TemplatingMethod ¶
type TemplatingMethod string
const ( TemplatingMethodHelm TemplatingMethod = "helm" TemplatingMethodKustomize TemplatingMethod = "kustomize" TemplatingMethodNone TemplatingMethod = "none" )
Source Files ¶
Click to show internal directories.
Click to hide internal directories.