Add external services while i migrate from nomad -> k8s

This commit is contained in:
Amarpreet Minhas 2022-12-29 05:14:04 +00:00
parent d2662ea421
commit e100d2a826
6 changed files with 550 additions and 0 deletions

View file

@ -0,0 +1,109 @@
---
apiVersion: v1
kind: Service
metadata:
name: freshrss
namespace: external-services
spec:
type: ClusterIP
ports:
- name: http
port: 80
...
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: freshrss
namespace: external-services
labels:
kubernetes.io/service-name: freshrss
addressType: IPv4
ports:
- name: http
appProtocol: http
protocol: TCP
port: 21046
endpoints:
- addresses:
- "192.168.0.12"
conditions:
ready: true
...
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: freshrss-cert
namespace: istio-system
spec:
secretName: freshrss-cert
commonName: rss.minhas.io
dnsNames:
- rss.minhas.io
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
group: cert-manager.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: freshrss-gateway
namespace: external-services
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: freshrss-cert
hosts:
- rss.minhas.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: freshrss
namespace: external-services
spec:
hosts:
- rss.minhas.io
addresses:
- 0.0.0.0/0
ports:
- number: 21046
name: freshrss
protocol: HTTP
location: MESH_EXTERNAL
resolution: STATIC
endpoints:
- address: 192.168.0.12
...
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: freshrss-gateway
namespace: external-services
spec:
hosts:
- rss.minhas.io
gateways:
- freshrss-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: freshrss
...

View file

@ -0,0 +1,109 @@
---
apiVersion: v1
kind: Service
metadata:
name: git
namespace: external-services
spec:
type: ClusterIP
ports:
- name: http
port: 80
...
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: git
namespace: external-services
labels:
kubernetes.io/service-name: git
addressType: IPv4
ports:
- name: http
appProtocol: http
protocol: TCP
port: 23922
endpoints:
- addresses:
- "192.168.0.12"
conditions:
ready: true
...
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: git-cert
namespace: istio-system
spec:
secretName: git-cert
commonName: git.minhas.io
dnsNames:
- git.minhas.io
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
group: cert-manager.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: git-gateway
namespace: external-services
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: git-cert
hosts:
- git.minhas.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: git
namespace: external-services
spec:
hosts:
- git.minhas.io
addresses:
- 0.0.0.0/0
ports:
- number: 23922
name: git
protocol: HTTP
location: MESH_EXTERNAL
resolution: STATIC
endpoints:
- address: 192.168.0.12
...
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: git-gateway
namespace: external-services
spec:
hosts:
- git.minhas.io
gateways:
- git-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: git
...

View file

@ -0,0 +1,109 @@
---
apiVersion: v1
kind: Service
metadata:
name: kanban
namespace: external-services
spec:
type: ClusterIP
ports:
- name: http
port: 80
...
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: kanban
namespace: external-services
labels:
kubernetes.io/service-name: kanban
addressType: IPv4
ports:
- name: http
appProtocol: http
protocol: TCP
port: 3453
endpoints:
- addresses:
- "192.168.0.12"
conditions:
ready: true
...
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: kanban-cert
namespace: istio-system
spec:
secretName: kanban-cert
commonName: kanban.minhas.io
dnsNames:
- kanban.minhas.io
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
group: cert-manager.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: kanban-gateway
namespace: external-services
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: kanban-cert
hosts:
- kanban.minhas.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: kanban
namespace: external-services
spec:
hosts:
- kanban.minhas.io
addresses:
- 0.0.0.0/0
ports:
- number: 3453
name: kanban
protocol: HTTP
location: MESH_EXTERNAL
resolution: STATIC
endpoints:
- address: 192.168.0.12
...
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: kanban-gateway
namespace: external-services
spec:
hosts:
- kanban.minhas.io
gateways:
- kanban-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: kanban
...

View file

@ -0,0 +1,109 @@
---
apiVersion: v1
kind: Service
metadata:
name: nextcloud
namespace: external-services
spec:
type: ClusterIP
ports:
- name: http
port: 80
...
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: nextcloud
namespace: external-services
labels:
kubernetes.io/service-name: nextcloud
addressType: IPv4
ports:
- name: http
appProtocol: http
protocol: TCP
port: 23006
endpoints:
- addresses:
- "192.168.0.12"
conditions:
ready: true
...
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: nextcloud-cert
namespace: istio-system
spec:
secretName: nextcloud-cert
commonName: nextcloud.minhas.io
dnsNames:
- nextcloud.minhas.io
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
group: cert-manager.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: nextcloud-gateway
namespace: external-services
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: nextcloud-cert
hosts:
- nextcloud.minhas.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: nextcloud
namespace: external-services
spec:
hosts:
- nextcloud.minhas.io
addresses:
- 0.0.0.0/0
ports:
- number: 23006
name: nextcloud
protocol: HTTP
location: MESH_EXTERNAL
resolution: STATIC
endpoints:
- address: 192.168.0.12
...
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: nextcloud-gateway
namespace: external-services
spec:
hosts:
- nextcloud.minhas.io
gateways:
- nextcloud-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: nextcloud
...

View file

@ -0,0 +1,5 @@
---
kind: Namespace
apiVersion: v1
metadata:
name: external-services

View file

@ -0,0 +1,109 @@
---
apiVersion: v1
kind: Service
metadata:
name: sudosci
namespace: external-services
spec:
type: ClusterIP
ports:
- name: http
port: 80
...
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: sudosci
namespace: external-services
labels:
kubernetes.io/service-name: sudosci
addressType: IPv4
ports:
- name: http
appProtocol: http
protocol: TCP
port: 28824
endpoints:
- addresses:
- "192.168.0.12"
conditions:
ready: true
...
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: sudosci-cert
namespace: istio-system
spec:
secretName: sudosci-cert
commonName: api.sudoscientist.com
dnsNames:
- api.sudoscientist.com
issuerRef:
name: route53-issuer
kind: ClusterIssuer
group: cert-manager.io
...
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: sudosci-gateway
namespace: external-services
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: sudosci-cert
hosts:
- api.sudoscientist.com
...
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: sudosci
namespace: external-services
spec:
hosts:
- api.sudoscientist.com
addresses:
- 0.0.0.0/0
ports:
- number: 28824
name: sudosci
protocol: HTTP
location: MESH_EXTERNAL
resolution: STATIC
endpoints:
- address: 192.168.0.12
...
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: sudosci-gateway
namespace: external-services
spec:
hosts:
- api.sudoscientist.com
gateways:
- sudosci-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: sudosci
...