Files
zeekayandHanzo Dev 446e343a3d cd: annotations are cd.hanzo.ai, API group is apps.hanzo.ai
Two corrections on top of the naming pass, both found by checking the live
cluster rather than the source.

The rename had silently changed the user-facing annotation key from
argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live
Applications carry the old key, so deploying that would have ignored every
sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*,
and universe 575650286 moves the ApplicationSet template that stamps it, so
the controller regenerates all 63 consistently.

The API group in code said argoproj.io/v1alpha1 in 157 places while the
cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are
applications.apps.hanzo.ai). Code now matches what is actually served.

The legacy applications.argoproj.io/app-name label had ZERO live users, so it
went with the rest. foo.argoproj.io test fixtures became foo.example.com —
arbitrary test domains should not carry a vendor name.

go build ./... exit 0.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 16:32:14 -07:00

151 lines
4.0 KiB
YAML

# A minimal aggregated (extension) API server based on the Kubernetes
# "sample-apiserver" (wardle). It registers the wardle.example.com/v1alpha1 group
# (Flunder/Fischer kinds) via an APIService. These manifests are intentionally
# NOT part of any Hanzo CD application path; the e2e test applies them directly
# with kubectl AFTER Hanzo CD is already running, to verify that the cluster cache
# picks up the newly served kinds without a manual cache invalidation.
apiVersion: v1
kind: Namespace
metadata:
name: wardle
# e2e.apps.hanzo.ai lets fixture EnsureCleanState catch leaks if t.Cleanup fails.
labels:
e2e.apps.hanzo.ai: "true"
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: apiserver
namespace: wardle
---
# Allows the aggregated apiserver to delegate authn/authz to the kube-apiserver.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: wardle:system:auth-delegator
labels:
e2e.apps.hanzo.ai: "true"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: apiserver
namespace: wardle
---
# Allows the aggregated apiserver to read the extension-apiserver-authentication
# configmap (front-proxy CA / requestheader config) from kube-system.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: wardle-auth-reader
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
name: apiserver
namespace: wardle
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: wardle-aggregated-apiserver-clusterrole
labels:
e2e.apps.hanzo.ai: "true"
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "watch", "list"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"]
verbs: ["get", "watch", "list"]
- apiGroups: ["flowcontrol.apiserver.k8s.io"]
resources: ["prioritylevelconfigurations", "flowschemas"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: wardle-aggregated-apiserver-clusterrolebinding
labels:
e2e.apps.hanzo.ai: "true"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: wardle-aggregated-apiserver-clusterrole
subjects:
- kind: ServiceAccount
name: apiserver
namespace: wardle
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wardle-server
namespace: wardle
labels:
apiserver: "true"
spec:
replicas: 1
selector:
matchLabels:
apiserver: "true"
template:
metadata:
labels:
apiserver: "true"
spec:
serviceAccountName: apiserver
containers:
- name: wardle-server
image: registry.k8s.io/e2e-test-images/sample-apiserver:1.29.2
imagePullPolicy: IfNotPresent
args:
- --etcd-servers=http://127.0.0.1:2379
- --secure-port=8443
ports:
- containerPort: 8443
- name: etcd
image: registry.k8s.io/etcd:3.5.16-0
imagePullPolicy: IfNotPresent
command: ["/usr/local/bin/etcd"]
args:
- --data-dir=/tmp/etcd
- --listen-client-urls=http://127.0.0.1:2379
- --advertise-client-urls=http://127.0.0.1:2379
---
apiVersion: v1
kind: Service
metadata:
name: api
namespace: wardle
spec:
ports:
- port: 443
protocol: TCP
targetPort: 8443
selector:
apiserver: "true"
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: v1alpha1.wardle.example.com
# e2e.apps.hanzo.ai lets fixture EnsureCleanState clean up this cluster-scoped
# APIService between tests; a dangling APIService degrades discovery.
labels:
e2e.apps.hanzo.ai: "true"
spec:
insecureSkipTLSVerify: true
group: wardle.example.com
groupPriorityMinimum: 1000
versionPriority: 15
service:
name: api
namespace: wardle
version: v1alpha1