apiVersion: v1 kind: Service metadata: name: mongo labels: name: mongo spec: ports: - port: 27017 targetPort: 27017 clusterIP: None selector: role: mongo --- apiVersion: apps/v1 kind: StatefulSet metadata: name: mongo spec: serviceName: "mongo" replicas: 1 selector: matchLabels: role: mongo template: metadata: labels: app: mongo role: mongo spec: containers: - name: mongo image: mongo env: - name: MONGO_INITDB_ROOT_USERNAME value: mongoadmin - name: MONGO_INITDB_ROOT_PASSWORD value: mongopass securityContext: privileged: true volumeMounts: - name: mongovol mountPath: /data/db volumes: - name: mongovol persistentVolumeClaim: claimName: mongodb-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongodb-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 7Gi storageClassName: microk8s-hostpath apiVersion: apps/v1 kind: Deployment metadata: name: netmaker-backend labels: app: netmaker-backend spec: selector: matchLabels: app: netmaker-backend replicas: 1 template: metadata: labels: app: netmaker-backend spec: containers: - name: netmaker-backend image: gravitl/netmaker:v0.5.7 ports: - containerPort: 8081 volumeMounts: - name: nm-pvc mountPath: /root/config/dnsconfig env: - name: SERVER_API_CONN_STRING value: "api.NETMAKER_BASE_DOMAIN:443" - name: SERVER_GRPC_CONN_STRING value: "grpc.NETMAKER_BASE_DOMAIN:443" - name: COREDNS_ADDR value: "10.152.183.53" - name: GRPC_SSL value: "on" - name: SERVER_HTTP_HOST value: "api.NETMAKER_BASE_DOMAIN" - name: SERVER_GRPC_HOST value: "grpc.NETMAKER_BASE_DOMAIN" - name: API_PORT value: "8081" - name: GRPC_PORT value: "443" - name: CLIENT_MODE value: "off" - name: MASTER_KEY value: "Unkn0wn!" - name: SERVER_GRPC_WIREGUARD value: "off" - name: MASTER_KEY value: "secretkey" - name: CORS_ALLOWED_ORIGIN value: "*" - name: DISABLE_REMOTE_IP_CHECK value: "on" - name: MONGO_ADMIN value: "mongoadmin" - name: MONGO_PASS value: "mongopass" - name: MONGO_HOST value: "mongo-0.mongo" - name: MONGO_OPTS value: "/?authSource=admin" volumes: - name: nm-pvc persistentVolumeClaim: claimName: nm-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nm-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 128Mi storageClassName: microk8s-hostpath --- apiVersion: v1 kind: Service metadata: labels: app: netmaker-backend name: netmaker-api spec: ports: - port: 8081 protocol: TCP targetPort: 8081 selector: app: netmaker-backend sessionAffinity: None type: ClusterIP --- apiVersion: v1 kind: Service metadata: labels: app: netmaker-backend name: netmaker-grpc spec: ports: - port: 443 protocol: TCP targetPort: 443 selector: app: netmaker-backend sessionAffinity: None type: ClusterIP apiVersion: apps/v1 kind: Deployment metadata: name: netmaker-dns labels: app: netmaker-dns spec: selector: matchLabels: app: netmaker-dns replicas: 1 template: metadata: labels: app: netmaker-dns spec: containers: - args: - -conf - /root/dnsconfig/Corefile image: coredns/coredns imagePullPolicy: Always name: netmaker-dns ports: - containerPort: 53 name: dns protocol: UDP - containerPort: 53 name: dns-tcp protocol: TCP volumeMounts: - mountPath: /root/dnsconfig name: nm-pvc readOnly: true securityContext: allowPrivilegeEscalation: false capabilities: add: - NET_BIND_SERVICE drop: - all dnsPolicy: "None" dnsConfig: nameservers: - 127.0.0.1 volumes: - name: nm-pvc persistentVolumeClaim: claimName: nm-pvc --- apiVersion: v1 kind: Service metadata: labels: app: netmaker-dns name: netmaker-dns spec: ports: - port: 53 protocol: UDP targetPort: 53 name: udp - port: 53 protocol: TCP targetPort: 53 name: tcp selector: app: netmaker-dns sessionAffinity: None type: ClusterIP clusterIP: 10.152.183.53 apiVersion: apps/v1 kind: Deployment metadata: name: netmaker-ui labels: app: netmaker-ui spec: selector: matchLabels: app: netmaker-ui replicas: 1 template: metadata: labels: app: netmaker-ui spec: containers: - name: netmaker-ui image: gravitl/netmaker-ui:v0.5 ports: - containerPort: 80 env: - name: BACKEND_URL value: "https://api.NETMAKER_BASE_DOMAIN" --- apiVersion: v1 kind: Service metadata: labels: app: netmaker-ui name: netmaker-ui spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: netmaker-ui sessionAffinity: None type: ClusterIP apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nm-api-ingress-nginx annotations: nginx.ingress.kubernetes.io/rewrite-target: / cert-manager.io/cluster-issuer: "letsencrypt-prod" nginx.ingress.kubernetes.io/ssl-redirect: 'true' spec: ingressClassName: public tls: - hosts: - api.NETMAKER_BASE_DOMAIN secretName: nm-api-tls rules: - host: api.NETMAKER_BASE_DOMAIN http: paths: - path: / pathType: Prefix backend: service: name: netmaker-api port: number: 8081 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nm-grpc-ingress-nginx annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" nginx.ingress.kubernetes.io/ssl-redirect: 'true' nginx.ingress.kubernetes.io/backend-protocol: "GRPC" spec: ingressClassName: public tls: - hosts: - grpc.NETMAKER_BASE_DOMAIN secretName: nm-grpc-tls rules: - host: grpc.NETMAKER_BASE_DOMAIN http: paths: - path: / pathType: Prefix backend: service: name: netmaker-grpc port: number: 443 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nm-ui-ingress-nginx annotations: nginx.ingress.kubernetes.io/rewrite-target: / cert-manager.io/cluster-issuer: "letsencrypt-prod" nginx.ingress.kubernetes.io/ssl-redirect: 'true' spec: ingressClassName: public tls: - hosts: - dashboard.NETMAKER_BASE_DOMAIN secretName: nm-ui-tls rules: - host: dashboard.NETMAKER_BASE_DOMAIN http: paths: - path: / pathType: Prefix backend: service: name: netmaker-ui port: number: 80