apiVersion: v1 kind: Service metadata: name: semaphore spec: ports: - name: app port: 3001 protocol: TCP targetPort: 3001 clusterIP: None type: ClusterIP --- apiVersion: v1 kind: Endpoints metadata: name: semaphore subsets: - addresses: - ip: 192.168.21.200 ports: - name: app port: 3001 protocol: TCP --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: semaphore-ingress spec: entryPoints: - websecure routes: - match: Host(`semaphore.internal.durp.info`) && PathPrefix(`/`) middlewares: - name: whitelist namespace: traefik kind: Rule services: - name: semaphore port: 3001 scheme: http tls: secretName: semaphore-tls --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: semaphore-tls spec: secretName: semaphore-tls issuerRef: name: vault-issuer kind: ClusterIssuer commonName: "semaphore.internal.durp.info" dnsNames: - "semaphore.internal.durp.info"