You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Epic: [Epic] HANA Multi-Tenancy Support via HANA-MT API v2.6.2 ADR:20260120-adr-hana-mt.md Dependency:#83 must be completed first Labels:enhancementmulti-tenancyhana-mt
Context
HanaTenant is the aggregate root of the HANA-MT hierarchy. A tenant represents a top-level HANA Cloud resource object. All other MT resources (containers, credentials) belong to a tenant.
This issue implements the HanaTenant custom resource type and its controller end-to-end: CRD definition, reconciler logic, unit tests, E2E test, and example YAMLs.
CRD Spec (Proposal — please review before implementation)
spec.serviceInstanceID (string, required) HANA Cloud Service Instance ID
spec.dataEncryption.mode (string, optional) DEDICATED_KEY | MANAGED_KEY
spec.labels[] ([]string, optional) HANA-MT API labels: max 3, format "key=value"
spec.guid (string, optional) If set: adopt an existing tenant
spec.apiCredentialsRef (object, optional) OAuth2 credentials secret reference
.name (string) Secret name (default: "hana-mt-api-credentials")
.namespace (string, optional) Secret namespace (default: CR namespace)
CRD Status (Proposal — please review before implementation)
status.phase Creating | Ready | Updating | Deleting | FailedDelete | Failed
status.guid HANA tenant GUID (populated after creation/adoption)
status.etag ETag from last API GET
status.observedGeneration Generation of the spec this status reflects
status.containerRefs[] List of managed HanaContainer CRs (name + guid)
status.createTimestamp Creation timestamp from API (RFC3339)
status.purgeTimestamp Expiry time for soft-deleted tenant (14 days after deletion)
status.conditions[] Detailed status conditions
Tasks
HanaTenant type definition (Spec, Status — no xpv1 embedding)
[Feature] HanaTenant CRD + Controller E2E
Epic: [Epic] HANA Multi-Tenancy Support via HANA-MT API v2.6.2
ADR: 20260120-adr-hana-mt.md
Dependency: #83 must be completed first
Labels:
enhancementmulti-tenancyhana-mtContext
HanaTenantis the aggregate root of the HANA-MT hierarchy. A tenant represents a top-level HANA Cloud resource object. All other MT resources (containers, credentials) belong to a tenant.This issue implements the
HanaTenantcustom resource type and its controller end-to-end: CRD definition, reconciler logic, unit tests, E2E test, and example YAMLs.CRD Spec (Proposal — please review before implementation)
CRD Status (Proposal — please review before implementation)
Tasks
HanaTenanttype definition (Spec, Status — no xpv1 embedding)groupversion_info.gofor the new MT API groupgo generate ./apis/...internal/controller/hanatenant/reconciler.goIf-Match: {etag}header?immediate=true, status → Deleting + purgeTimestamphana.sap.com/immediate-delete: "true"): DELETE with?immediate=truehana.sap.com/cascade-adopt: "true"): automatically create HanaContainer CRs for each container found via APIinternal/controller/hana.goapis/custom_register.goexamples/Acceptance Criteria
HanaTenanttype definition with complete Spec/Statusgroupversion_info.gofor the new MT API grouppackage/crds/internal/controller/hanatenant/reconciler.goIf-Match: {etag}header?immediate=true, status → Deleting + purgeTimestamp?immediate=truecascade-adopt: "true"): automatically create HanaContainer CRs for all containers discovered via APIstatus.conditions[]correctly updated (Ready, OperationInProgress, DeletionFailed types)test/e2e/hanatenant_test.gowith//go:build e2eexamples/: hanatenant-create.yaml, hanatenant-adopt.yaml, hanatenant-cascade-adopt.yaml