Documentation
¶
Index ¶
Constants ¶
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" )
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" )
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 ¶
NewProjectCreatedCondition creates a condition to indicate the project is created/ready
func NewProjectFinalizingCondition ¶ added in v0.2.0
Types ¶
type Reconciler ¶
Reconciler reconciles a Project object
func (*Reconciler) Reconcile ¶
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.