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

spec:
  ports:
    - name: web
      port: 80
  selector:
    app: traefiklabs
    task: whoami

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoami-abc
  namespace: default
  labels:
    kubernetes.io/service-name: whoami

addressType: IPv4
ports:
  - name: web
    port: 80
endpoints:
  - addresses:
      - 10.10.0.1
      - 10.10.0.2
    conditions:
      ready: true

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

spec:
  ports:
    - name: web
      port: 8080
  selector:
    app: traefiklabs
    task: whoami2

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoami2-abc
  namespace: default
  labels:
    kubernetes.io/service-name: whoami2

addressType: IPv4
ports:
  - name: web
    port: 8080
endpoints:
  - addresses:
      - 10.10.0.3
      - 10.10.0.4
    conditions:
      ready: true

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

spec:
  ports:
    - name: websecure
      port: 443
      targetPort: 8443
  selector:
    app: traefiklabs
    task: whoami2

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoamitls-abc
  namespace: default
  labels:
    kubernetes.io/service-name: whoamitls

addressType: IPv4
ports:
  - name: websecure
    port: 8443
endpoints:
  - addresses:
      - 10.10.0.5
      - 10.10.0.6
    conditions:
      ready: true

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

spec:
  ports:
    - name: websecure2
      port: 8443
  selector:
    app: traefiklabs
    task: whoami3

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoami3-abc
  namespace: default
  labels:
    kubernetes.io/service-name: whoami3

addressType: IPv4
ports:
  - name: websecure2
    port: 8443
endpoints:
  - addresses:
      - 10.10.0.7
      - 10.10.0.8
    conditions:
      ready: true

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

spec:
  ports:
    - name: web
      port: 8080
  selector:
    app: traefiklabs
    task: whoami-ipv6

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoami-ipv6-abc
  namespace: default
  labels:
    kubernetes.io/service-name: whoami-ipv6

addressType: IPv6
ports:
  - name: web
    port: 8080
endpoints:
  - addresses:
      - "2001:db8:85a3:8d3:1319:8a2e:370:7348"
    conditions:
      ready: true

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

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

---
apiVersion: v1
kind: Service
metadata:
  name: external-svc-with-https
  namespace: default
spec:
  externalName: external.domain
  type: ExternalName
  ports:
    - name: https
      protocol: TCP
      port: 443

---
apiVersion: v1
kind: Service
metadata:
  name: external-svc-with-ipv6
  namespace: default
spec:
  externalName: "2001:db8:85a3:8d3:1319:8a2e:370:7347"
  type: ExternalName
  ports:
    - name: http
      protocol: TCP
      port: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: whoami-svc
  namespace: cross-ns

spec:
  ports:
    - name: web
      port: 80
  selector:
    app: traefiklabs
    task: whoami

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoami-svc-abc
  namespace: cross-ns
  labels:
    kubernetes.io/service-name: whoami-svc

addressType: IPv4
ports:
  - name: web
    port: 80
endpoints:
  - addresses:
      - 10.10.0.1
      - 10.10.0.2
    conditions:
      ready: true

---
apiVersion: v1
kind: Service
metadata:
  name: whoami-without-endpointslice-endpoints
  namespace: default

spec:
  ports:
    - name: myapp
      port: 80

  selector:
    app: traefiklabs
    task: whoami

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: whoami-without-endpointslice-endpoints-abc
  namespace: default
  labels:
    kubernetes.io/service-name: whoami-without-endpointslice-endpoints

addressType: IPv4
endpoints: []

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

spec:
  ports:
    - name: web
      port: 80
  type: ClusterIP
  clusterIP: 10.10.0.1

---
apiVersion: v1
kind: Service
metadata:
  name: native-disabled-svc
  namespace: default
spec:
  ports:
    - name: web
      port: 80
  type: ClusterIP
  clusterIP: 10.10.0.1

---
kind: EndpointSlice
apiVersion: discovery.k8s.io/v1
metadata:
  name: native-disabled-svc-abc
  namespace: default
  labels:
    kubernetes.io/service-name: native-disabled-svc
addressType: IPv4
ports:
  - name: web
    port: 80
endpoints:
  - addresses:
      - 10.10.0.20
      - 10.10.0.21
    conditions:
      ready: true

---
apiVersion: v1
kind: Service
metadata:
  name: nodeport-svc
  namespace: default

spec:
  ports:
    - name: web
      port: 80
      nodePort: 32456
  type: NodePort
  clusterIP: 10.10.0.1
