project

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2026 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ConditionCreated represents whether the project is created
	ConditionCreated controller.ConditionType = "Created"
	// ConditionFinalizing represents whether the project is being finalized
	ConditionFinalizing controller.ConditionType = "Finalizing"

	// ConditionReady reflects the project release lifecycle health: True
	// when the inlined (Cluster)ProjectType snapshot resolves and the
	// latest ProjectRelease is in place.
	ConditionReady controller.ConditionType = "Ready"
)
View Source
const (
	// ReasonProjectCreated is the reason used when a project is created/ready
	ReasonProjectCreated controller.ConditionReason = "ProjectCreated"

	// ReasonProjectFinalizing is the reason used when a projects's dependents are being deleted'
	ReasonProjectFinalizing controller.ConditionReason = "ProjectFinalizing"

	// ReasonProjectTypeNotFound indicates the referenced ProjectType or
	// ClusterProjectType does not exist in the cluster yet.
	ReasonProjectTypeNotFound controller.ConditionReason = "ProjectTypeNotFound"

	// ReasonReconciled indicates the Project has been validated against
	// its referenced (Cluster)ProjectType. Later commits also gate on
	// status.latestRelease pointing at a current ProjectRelease.
	ReasonReconciled controller.ConditionReason = "Reconciled"
)
View Source
const (
	// ProjectCleanupFinalizer is the finalizer that is used to clean up project resources.
	ProjectCleanupFinalizer = "openchoreo.dev/project-cleanup"
)

Variables

This section is empty.

Functions

func NewProjectCreatedCondition

func NewProjectCreatedCondition(generation int64) metav1.Condition

NewProjectCreatedCondition creates a condition to indicate the project is created/ready

func NewProjectFinalizingCondition added in v0.2.0

func NewProjectFinalizingCondition(generation int64) metav1.Condition

Types

type Reconciler

type Reconciler struct {
	client.Client
	Scheme   *runtime.Scheme
	Recorder record.EventRecorder
}

Reconciler reconciles a Project object

func (*Reconciler) Reconcile

func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state. TODO(user): Modify the Reconcile function to compare the state specified by the Project object against the actual cluster state, and then perform operations to make the cluster state reflect the state specified by the user.

For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.19.1/pkg/reconcile

func (*Reconciler) SetupWithManager

func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager. The watch surface re-enqueues Projects when:

  • a Component owned by the Project changes (legacy hierarchy hook)
  • a (Cluster)ProjectType referenced via spec.type changes — so PE edits to the template drive a new ProjectRelease cut on the referencing Projects
  • a ProjectReleaseBinding of the Project changes (mapped via spec.owner.projectName rather than Owns, since externally authored bindings carry no OwnerReference) — newly authored bindings get their empty projectRelease pin seeded, and binding status updates can drive Project-level aggregation in a future phase

type ReleaseSpec added in v1.2.0

type ReleaseSpec struct {
	ProjectType openchoreov1alpha1.ProjectReleaseProjectType `json:"projectType"`
	Parameters  *runtime.RawExtension                        `json:"parameters,omitempty"`
}

ReleaseSpec captures the immutable inputs that uniquely identify a ProjectRelease. Owner is intentionally excluded so the hash represents the configuration, not the ownership pointer. Mirrors internal/controller/resource/controller_hash.go:ReleaseSpec.

Directories

Path Synopsis
integrations

Jump to

Keyboard shortcuts

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