# Historical executed lab intent, not a reusable approval or production example.
# Secret material is not included. The original object remains retained for audit.
apiVersion: ops.cisco.vk/v1alpha1
kind: IOSXESoftwareRollout
metadata:
  name: roadmap-drain-bed27185-101
  namespace: cvk-live
spec:
  control:
    revision: 0
  plan:
    requestedBy: system:admin
    requestedAt: "2026-10-05T09:47:00Z"
    targets:
      selector:
        matchLabels:
          topology.cisco.vk/managed: "true"
          topology.cisco.vk/lab-set: pr194-physical-c9k
          topology.cisco.vk/lab-node: cat9k-lab-101
      allowAll: false
      maxTargets: 1
    image:
      imageFamily: cat9k
      sha256: c210d89b0bcbdeea4962b87b5f159c331988fe5a85d07a5a30da0438b2d99355
      sources:
        - name: ubuntu16-qualified-source
          priority: 10
          url: sftp://10.0.2.2/home/cisco/cvk-gnoi-images/cat9k_iosxe.17.18.02.SPA.bin
          urlSecretRef:
            name: pr194-iosxe-image-source
    targetVersion: 17.18.02
    strategy: PrepareOnly
    rollbackOnFailure: false
    installTimeoutSeconds: 7200
    rebootTimeoutSeconds: 3600
    canaries:
      - name: c9300-24p
        devices: [cat9k-lab-101]
    pauseAfterCanary: false
    budgets:
      maxConcurrentTransfers: 1
      maxUnavailable: 1
      domains:
        - topologyKey: distribution.cisco.vk/cache-domain
          maxConcurrentTransfers: 1
        - topologyKey: operations.cisco.vk/redundancy-domain
          maxUnavailable: 1
    workloads:
      policy: Drain
      drain:
        namespaces: [cvk-pr194-workloads]
        timeoutSeconds: 1800
        maxPods: 2
        maxTerminationGraceSeconds: 30
    health:
      maxObservationAgeSeconds: 300
      canarySoakSeconds: 30
      waveSoakSeconds: 30
      network:
        enabled: true
        requireCompleteEvidence: true
