The backend for managing the servers. This is paired with the Packet (Equinix Metal) provider for provisioning servers.
This is the backend for communicating to a DNS provider for managing the records for each instance.
The frontend and backend for managing Pair instances.
To see the configuration for the production Pair cluster, please check out the infra/cluster-api folder.
In this deployment, we presume the following things of your cluster:
- an ingress controller
- DNS management via a DNS provider supported by External-DNS
Install Cert-Manager:
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.yaml
Install Helm-Operator:
helm repo add fluxcd https://charts.fluxcd.io
kubectl apply -f https://raw.githubusercontent.com/fluxcd/helm-operator/1.2.0/deploy/crds.yaml
helm upgrade -i helm-operator --create-namespace fluxcd/helm-operator \
--namespace helm-operator \
--set helm.versions=v3
(Management with Helm-Operator is recommended but optional)
Install Cluster-API, with support for Packet/Equinix Metal:
export PACKET_API_KEY="my-api-key"
clusterctl init --infrastructure packet
Install External-DNS. Installation can differ from where it’s being installed. The production external-dns is available in external-dns.org.
Create a namespace:
kubectl create ns sharingio-pair
A basic installation looks like this:
apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
name: sharingio-pair
namespace: sharingio-pair
spec:
releaseName: sharingio-pair
chart:
git: https://github.com/sharingio/pair.git
ref: 2021.05.28.1515
path: charts/sharingio-pair
values:
timezone: Pacific/Auckland
instance:
kubernetesVersion: 1.21.0
environmentRepository: registry.gitlab.com/sharingio/environment/ii
environmentVersion: 2021.11.12.1719
nodeSize: c1.small.x86
sessionSecret: pairpairpairpair
githubOAuth:
id: my-github-oauth-app-id
secret: my-github-oauth-app-secret
equinixMetal:
projectID: my-equinix-metal-project-id
ingress:
enabled: true
certmanager:
enabled: true
hosts:
- host: pair.sharing.io
paths:
- /
To find ways of configuring your Pair, check out the configuration docs.