apiVersion: v1
kind: Service
metadata:
  name: whoamitcp
  namespace: default

spec:
  ports:
    - name: myapp
      port: 8000
  selector:
    app: traefiklabs
    task: whoamitcp

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp
  namespace: default

subsets:
  - addresses:
      - ip: 10.10.0.1
      - ip: 10.10.0.2
    ports:
      - name: myapp
        port: 8000

---
apiVersion: v1
kind: Service
metadata:
  name: whoamitcp2
  namespace: default

spec:
  ports:
    - name: myapp2
      port: 8080
  selector:
    app: traefiklabs
    task: whoamitcp2

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp2
  namespace: default

subsets:
  - addresses:
      - ip: 10.10.0.3
      - ip: 10.10.0.4
    ports:
      - name: myapp2
        port: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: whoamitcptls
  namespace: default

spec:
  ports:
    - name: websecure
      port: 443
  selector:
    app: traefiklabs
    task: whoamitcptls2

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcptls
  namespace: default

subsets:
  - addresses:
      - ip: 10.10.0.5
      - ip: 10.10.0.6
    ports:
      - name: websecure
        port: 443

---
apiVersion: v1
kind: Service
metadata:
  name: whoamitcp3
  namespace: ns3

spec:
  ports:
    - name: myapp3
      port: 8083
  selector:
    app: traefiklabs
    task: whoamitcp3

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp3
  namespace: ns3

subsets:
  - addresses:
      - ip: 10.10.0.7
      - ip: 10.10.0.8
    ports:
      - name: myapp3
        port: 8083

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp3
  namespace: ns4

subsets:
  - addresses:
      - ip: 10.10.0.9
      - ip: 10.10.0.10
    ports:
      - name: myapp4
        port: 8084

---
apiVersion: v1
kind: Service
metadata:
  name: whoamitcp-ipv6
  namespace: default

spec:
  ports:
    - name: myapp-ipv6
      port: 8080
  selector:
    app: traefiklabs
    task: whoamitcp-ipv6

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp-ipv6
  namespace: default

subsets:
  - addresses:
      - ip: "fd00:10:244:0:1::3"
      - ip: "2001:db8:85a3:8d3:1319:8a2e:370:7348"
    ports:
      - name: myapp-ipv6
        port: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: external-svc-tcp
  namespace: default
spec:
  externalName: external.domain
  type: ExternalName

---
apiVersion: v1
kind: Service
metadata:
  name: external.service.with.port.tcp
  namespace: default
spec:
  externalName: external.domain
  type: ExternalName
  ports:
    - name: http
      protocol: TCP
      port: 80

---
apiVersion: v1
kind: Service
metadata:
  name: external.service.with.ipv6
  namespace: default
spec:
  externalName: "fe80::200:5aee:feaa:20a2"
  type: ExternalName

---
apiVersion: v1
kind: Service
metadata:
  name: whoamitcp-cross-ns
  namespace: cross-ns

spec:
  ports:
    - name: myapp
      port: 8000
  selector:
    app: traefiklabs
    task: whoamitcp

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp-cross-ns
  namespace: cross-ns

subsets:
  - addresses:
      - ip: 10.10.0.1
      - ip: 10.10.0.2
    ports:
      - name: myapp
        port: 8000

---
apiVersion: v1
kind: Service
metadata:
  name: whoamitcp-without-endpoints-subsets
  namespace: default

spec:
  ports:
    - name: myapp
      port: 8000

  selector:
    app: traefiklabs
    task: whoamitcp

---
kind: Endpoints
apiVersion: v1
metadata:
  name: whoamitcp-without-endpoints-subsets
  namespace: default

---
apiVersion: v1
kind: Service
metadata:
  name: native-svc-tcp
  namespace: default

spec:
  ports:
    - name: myapp
      port: 8000
  type: ClusterIP
  clusterIP: 10.10.0.1
