Module status_reasons

Module status_reasons 

Source
Expand description

Standard Kubernetes status condition reasons for Bindy resources.

This module defines constants for condition reasons following Kubernetes conventions. Reasons are programmatic identifiers in CamelCase that explain why a condition has a particular status.

§Condition Hierarchy

Bindy uses a hierarchical status tracking system where each resource tracks its children:

  • ClusterBind9Provider → tracks Bind9Cluster resources
  • Bind9Cluster → tracks Bind9Instance resources
  • Bind9Instance → tracks Pod replicas

§Condition Types

§Primary Condition

All resources have a single encompassing type: Ready condition that indicates the overall health of the resource.

§Child Conditions

Resources also track individual child resource status with indexed conditions:

  • Bind9Cluster: conditions like Bind9Instance-0, Bind9Instance-1, etc.
  • Bind9Instance: conditions like Pod-0, Pod-1, etc.

§Example Status

status:
  conditions:
    - type: Ready
      status: "True"
      reason: AllReady
      message: "All 3 instances are ready"
    - type: Bind9Instance-0
      status: "True"
      reason: AllReady
      message: "Instance my-cluster-primary-0 is ready (2/2 pods)"
    - type: Bind9Instance-1
      status: "True"
      reason: AllReady
      message: "Instance my-cluster-primary-1 is ready (2/2 pods)"
    - type: Bind9Instance-2
      status: "False"
      reason: PartiallyReady
      message: "Instance my-cluster-secondary-0 is progressing (1/2 pods)"

Constants§

CONDITION_TYPE_BIND9_INSTANCE_PREFIX
Condition type prefix for tracking individual Bind9Instance children.
CONDITION_TYPE_POD_PREFIX
Condition type prefix for tracking individual Pod children.
CONDITION_TYPE_READY
Primary condition type indicating overall resource readiness.
REASON_ALL_READY
All child resources are ready and healthy.
REASON_BINDCAR_AUTH_FAILED
Bindcar API authentication or authorization failed.
REASON_BINDCAR_BAD_REQUEST
Bindcar API returned an invalid or malformed request error.
REASON_BINDCAR_INTERNAL_ERROR
Bindcar API encountered an internal server error.
REASON_BINDCAR_NOT_IMPLEMENTED
Bindcar API feature not implemented.
REASON_BINDCAR_UNREACHABLE
Cannot connect to Bindcar API container.
REASON_CLUSTERS_PROGRESSING
Some namespace-scoped Bind9Cluster resources are not ready.
REASON_CLUSTERS_READY
All namespace-scoped Bind9Cluster resources are ready.
REASON_CONFIGURATION_INVALID
Configuration validation failed.
REASON_CONFIGURATION_VALID
Configuration has been validated successfully.
REASON_GATEWAY_ERROR
Gateway error reaching Bindcar pod.
REASON_INSTANCES_CREATED
All managed Bind9Instance resources have been created.
REASON_INSTANCES_PENDING
Waiting for instances to be created or updated.
REASON_INSTANCES_SCALING
Scaling instances up or down to match desired replica count.
REASON_MINIMUM_REPLICAS_AVAILABLE
Minimum number of replicas are available (but not all).
REASON_NOT_READY
No child resources are ready.
REASON_NO_CHILDREN
No child resources found (expected children missing).
REASON_PARTIALLY_READY
Some but not all child resources are ready.
REASON_PODS_CRASHING
One or more pods are crashing or in CrashLoopBackOff.
REASON_PODS_PENDING
Deployment is waiting for pods to be scheduled.
REASON_PROGRESSING
Resources are being created or updated.
REASON_PROGRESS_DEADLINE_EXCEEDED
Deployment has exceeded its progress deadline.
REASON_READY
Resource is ready and operational.
REASON_RNDC_AUTHENTICATION_FAILED
Failed to authenticate with RNDC (Remote Name Daemon Control).
REASON_UPSTREAM_UNREACHABLE
Cannot reach upstream or external services.
REASON_ZONE_NOT_FOUND
Requested zone or resource not found in BIND9.
REASON_ZONE_TRANSFER_COMPLETE
Secondary instance successfully transferred zones from primary.
REASON_ZONE_TRANSFER_FAILED
Zone transfer failed or is in progress.

Functions§

bind9_instance_condition_type
Create a condition type for a specific Bind9Instance child.
extract_child_index
Extract the index from a child condition type.
pod_condition_type
Create a condition type for a specific Pod child.