@startuml bluegreen_release_01

!pragma teoz true
hide stereotype
skinparam dpi 300
skinparam linetype ortho
skinparam defaultFontSize 10
skinparam shadowing false

skinparam nodesep 10
skinparam ranksep 10

skinparam RoundCorner 8
skinparam ArrowColor #9DADC1
skinparam ArrowThickness 2
skinParam ArrowFontSize 5

skinparam defaultTextAlignment right

skinparam frame<<ReplicaSet>> {
  BackgroundColor #F5F5F5

  BorderColor #E8E8E8

  FontColor #B3B3B3
  FontSize 7
  FontStyle bold
}

skinparam frame<<ReplicaSetRed>> {
  BackgroundColor #FFD1C7

  BorderColor #FF7F60

  FontColor #FF7F60
  FontSize 7
  FontStyle bold
}

skinparam frame<<ReplicaSetBlue>> {
  BackgroundColor #B3D8FF

  BorderColor #8CC4FF

  FontColor #77A7D9
  FontSize 7
  FontStyle bold
}

skinparam frame<<ReplicaSetGreen>> {
  BackgroundColor #B3FFEA
  
  BorderColor #4BEBBE

  FontColor #00b894
  FontSize 7
  FontStyle bold
}

skinparam rectangle<<Service>> {
  BackgroundColor #ffeaa7
  BorderColor #fdcb6e
  FontStyle Bold
  FontColor #FDAF1E
}

skinparam rectangle<<Pod>> {
  BackgroundColor #E6E6E6
  BorderColor #D4D4D4

  FontStyle Bold
  FontColor #B3B3B3
}


skinparam rectangle<<PodGreen>> {
  BackgroundColor #55efc4
  BorderColor #00b894

  FontStyle Bold
  FontColor #019E7F
}

skinparam rectangle<<PodBlue>> {
  BackgroundColor #74b9ff
  BorderColor #0984e3

  FontStyle Bold
  FontColor #0080E3
}

skinparam rectangle<<PodRed>> {
  BackgroundColor #fab1a0
  BorderColor #e17055

  FontStyle Bold
  FontColor #E15736
}

rectangle "Service" as service <<Service>>

service -[#0984e3]right->> replicaset_blue
service -[#E8E8E8]right->> replicaset_green

together {
  frame "ReplicaSet" as replicaset_blue <<ReplicaSetBlue>> {
    rectangle "1.0.0 <&check>" as replica_blue_01 <<PodBlue>>
    rectangle "1.0.0 <&check>" as replica_blue_02 <<PodBlue>>
    rectangle "1.0.0 <&check>" as replica_blue_03 <<PodBlue>>
    rectangle "1.0.0 <&check>" as replica_blue_04 <<PodBlue>>
    rectangle "1.0.0 <&check>" as replica_blue_05 <<PodBlue>>

    replica_blue_01 -[hidden]right- replica_blue_02
    replica_blue_02 -[hidden]right- replica_blue_03
    replica_blue_03 -[hidden]right- replica_blue_04
  }

  frame "ReplicaSet" as replicaset_green <<ReplicaSet>> {
    rectangle "1.1.0 <&check>" as replica_green_01 <<Pod>>
    rectangle "1.1.0 <&check>" as replica_green_02 <<Pod>>
    rectangle "1.1.0 <&check>" as replica_green_03 <<Pod>>
    rectangle "1.1.0 <&check>" as replica_green_04 <<Pod>>
    rectangle "1.1.0 <&check>" as replica_green_05 <<Pod>>

    replica_green_01 -[hidden]right- replica_green_02
    replica_green_02 -[hidden]right- replica_green_03
    replica_green_03 -[hidden]right- replica_green_04
  }

  replicaset_blue -[hidden]down- replicaset_green
}


@enduml