### Clone the getting started repository Source: https://docs.sighup.io/archive/getting-started/distro-on-vms Clones the repository containing example code for the tutorial and navigates into the correct directory. ```bash git clone https://github.com/sighupio/getting-started/ cd getting-started/distro-on-vms ``` -------------------------------- ### Clone the getting started repository Source: https://docs.sighup.io/archive/getting-started/distro-on-eks Clone the getting started repository containing the example code used in this tutorial. ```bash mkdir -p /tmp/getting-started && git -C /tmp/getting-started clone https://github.com/sighupio/getting-started/ . cd /tmp/getting-started/distro-on-eks ``` -------------------------------- ### Clone the getting started repository Source: https://docs.sighup.io/archive/getting-started/distro-on-minikube Clone the repository containing example code for the tutorial and navigate into the minikube directory. ```bash git clone https://github.com/sighupio/getting-started/ cd getting-started/distro-on-minikube ``` -------------------------------- ### Example Installation Output Source: https://docs.sighup.io/docs/1.33.2/getting-started/distro-on-minikube An example of the expected output during the furyctl installation process. ```text INFO Downloading distribution... INFO Validating configuration file... INFO Downloading dependencies... INFO Validating dependencies... INFO Running preflight checks INFO Checking that the cluster is reachable... INFO Cannot find state in cluster, skipping... INFO Running preupgrade phase... INFO Preupgrade phase completed successfully INFO Installing SIGHUP Distribution... INFO Checking that the cluster is reachable... INFO Checking storage classes... INFO Checking if all nodes are ready... INFO Applying manifests... INFO SIGHUP Distribution cluster created successfully INFO Applying plugins... INFO Skipping plugins phase as spec.plugins is not defined INFO Saving furyctl configuration file in the cluster... INFO Saving distribution configuration file in the cluster... ``` -------------------------------- ### Examples Source: https://docs.sighup.io/furyctl/cli-reference/get/furyctl_get_upgrade-paths Examples of how to use the furyctl get upgrade-paths command. ```bash furyctl get upgrade-paths shows the available upgrade paths for the kind and distribution version defined in the configuration file (furyctl.yaml by default) ``` ```bash furyctl get upgrade-paths --from vX.Y.Z shows the available upgrade paths for the kind defined in the configuration file but for the version X.Y.Z instead. ``` ```bash furyctl get upgrade-paths --kind OnPremises shows the available upgrade paths for the version defined in the configuration file but for the OnPremises kind, even if the cluster is an EKSCluster, for example. ``` ```bash furyctl get upgrade-paths --kind OnPremises --from X.Y.X shows the available upgrade paths for the version X.Y.Z of the OnPremises kind, without reading the configuration file. ``` -------------------------------- ### Examples Source: https://docs.sighup.io/furyctl/cli-reference/get/furyctl_get_supported-versions Examples of how to use the furyctl get supported-versions command. ```bash furyctl get supported-versions lists the currently supported SD versions and their compatibility with this version of furyctl for all kinds. furyctl get supported-versions --kind OnPremises lists the currently supported SD versions and their compatibility with this version of furyctl but for the OnPremises kind. ``` -------------------------------- ### Example installation output Source: https://docs.sighup.io/archive/getting-started/distro-on-minikube Example output logs showing the progress of the SIGHUP Distribution installation. ```text INFO Downloading distribution... INFO Validating configuration file... INFO Downloading dependencies... INFO Validating dependencies... INFO Running preflight checks INFO Checking that the cluster is reachable... INFO Cannot find state in cluster, skipping... INFO Running preupgrade phase... INFO Preupgrade phase completed successfully INFO Installing SIGHUP Distribution... INFO Checking that the cluster is reachable... INFO Checking storage classes... INFO Checking if all nodes are ready... INFO Applying manifests... INFO SIGHUP Distribution cluster created successfully INFO Applying plugins... INFO Skipping plugins phase as spec.plugins is not defined INFO Saving furyctl configuration file in the cluster... INFO Saving distribution configuration file in the cluster... ``` -------------------------------- ### Clone the repository and go to the example folder Source: https://docs.sighup.io/archive/components/installers/gke-installer This command clones the installer-gke repository and navigates into the example directory. ```bash git clone github.com/sighupio/installer-gke cd installer-gke ``` -------------------------------- ### Clone the repository and go to the example folder Source: https://docs.sighup.io/docs/1.33.2/components/installers/gke-installer This command clones the GKE installer repository and navigates into the example directory. ```bash git clone github.com/sighupio/installer-gke cd installer-gke ``` -------------------------------- ### Example Kustomize project in kustomization.yaml Source: https://docs.sighup.io/docs/installation/sd-configuration/plugins Example of a kustomization.yaml file for installing the Local Path Provisioner. ```yaml # plugins/local-path-provisioner/kustomization.yaml --- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - https://github.com/rancher/local-path-provisioner/master/deploy ``` -------------------------------- ### Per-Node Kernel Parameters Example Source: https://docs.sighup.io/archive/advanced-use-cases/bare-metal Example of setting kernelParameters per master or per node group. ```yaml spec: spec: kubernetes: masters: kernelParameters: - name: "param.name" value: "param-value" nodes: - name: worker kernelParameters: - name: "param.name" value: "other-value" ``` -------------------------------- ### Install Kustomize plugin Source: https://docs.sighup.io/furyctl/advanced-usage Example configuration for `furyctl.yaml` to install a Kustomize plugin, specifying its name and the local folder path. ```yaml ... spec: ... plugins: kustomize: - name: kustomize-project folder: path/to/kustomize/project ``` -------------------------------- ### Plugin Configuration Example Source: https://docs.sighup.io/archive/getting-started/distro-on-vms This snippet demonstrates the configuration for installing additional plugins in the cluster, specifically two Kustomize projects. ```yaml spec: plugins: kustomize: - name: cert-manager-secret folder: ./cert-manager-secret/ - name: storage folder: https://github.com/rancher/local-path-provisioner/deploy?ref=v0.0.24 ``` -------------------------------- ### Build binaries from source Source: https://docs.sighup.io/furyctl/installation Build the furyctl binaries using go build. ```bash go build . ``` -------------------------------- ### List binaries Source: https://docs.sighup.io/furyctl/installation List the generated furyctl binary after building from source. ```bash $ ls furyctl furyctl ``` -------------------------------- ### Example Source: https://docs.sighup.io/furyctl/cli-reference/create/furyctl_create_config An example of how to use the furyctl create config command. ```bash furyctl create config --kind OnPremises --version v1.30.0 --name test-cluster ``` -------------------------------- ### Clone the repository and navigate to the example folder Source: https://docs.sighup.io/archive/components/installers/aks-installer This command clones the installer-aks repository and changes the directory to the example folder. ```bash git clone github.com/sighupio/installer-aks cd installer-aks ``` -------------------------------- ### Example Git Branching Source: https://docs.sighup.io/archive/contribute/development Example of how to create a new branch for contributions using Git. ```bash git checkout -b add-envoy-rate-limit ``` -------------------------------- ### Create a sample configuration file Source: https://docs.sighup.io/archive/getting-started/distro-on-eks You can also create a sample configuration file by running the following command: ```bash furyctl create config --kind EKSCluster --version v1.33.1 --config custom-furyctl.yaml ``` -------------------------------- ### Helm Plugin Example in furyctl.yaml Source: https://docs.sighup.io/docs/1.33.2/installation/sd-configuration/plugins Example snippet for installing the kubernetes-dashboard using a Helm plugin within the furyctl.yaml file. ```yaml ... spec: ... plugins: helm: repositories: - name: kubernetes-dashboard url: https://kubernetes.github.io/dashboard/ releases: - name: kubernetes-dashboard namespace: kubernetes-dashboard chart: kubernetes-dashboard/kubernetes-dashboard values: - "/path/to/values.yaml" ``` -------------------------------- ### Follow installation progress Source: https://docs.sighup.io/archive/getting-started/distro-on-vms Command to monitor the installation log in real-time. ```bash tail -f .furyctl/furyctl.-.log | jq -j '.msg' ``` -------------------------------- ### Helm Plugin Example in furyctl.yaml Source: https://docs.sighup.io/archive/installation/sd-configuration/plugins Example snippet for installing the kubernetes-dashboard using a Helm plugin within the furyctl.yaml file. ```yaml ... spec: ... plugins: helm: repositories: - name: kubernetes-dashboard url: https://kubernetes.github.io/dashboard/ releases: - name: kubernetes-dashboard namespace: kubernetes-dashboard chart: kubernetes-dashboard/kubernetes-dashboard values: - "/path/to/values.yaml" ``` -------------------------------- ### Example configuration Source: https://docs.sighup.io/archive/advanced-use-cases/dedicated-etcd-nodes An example `furyctl.yaml` file demonstrating the configuration for deploying etcd on dedicated nodes, along with other cluster settings. ```yaml apiVersion: kfd.sighup.io/v1alpha2 kind: OnPremises metadata: name: my-cluster spec: kubernetes: ssh: username: example keyPath: ~/.ssh/example-key podCidr: 10.244.0.0/16 svcCidr: 10.96.0.0/16 etcd: hosts: - name: etcd1 ip: 192.168.1.50 - name: etcd2 ip: 192.168.1.51 - name: etcd3 ip: 192.168.1.52 masters: hosts: - name: master1 ip: 192.168.1.10 - name: master2 ip: 192.168.1.11 - name: master3 ip: 192.168.1.12 nodes: - name: worker hosts: - name: worker1 ip: 192.168.1.20 - name: worker2 ip: 192.168.1.21 - name: worker3 ip: 192.168.1.22 distribution: modules: networking: type: calico ingress: baseDomain: example.com nginx: type: dual ``` -------------------------------- ### Install from binaries Source: https://docs.sighup.io/furyctl/installation Download and install the latest furyctl binary using curl and tar. ```bash curl -L "https://github.com/sighupio/furyctl/releases/latest/download/furyctl-$(uname -s)-amd64.tar.gz" -o /tmp/furyctl.tar.gz && tar xfz /tmp/furyctl.tar.gz -C /tmp chmod +x /tmp/furyctl sudo mv /tmp/furyctl /usr/local/bin/furyctl ``` -------------------------------- ### Follow Installation Log Source: https://docs.sighup.io/docs/1.33.2/getting-started/distro-on-minikube Command to tail the furyctl log file to monitor the installation progress. ```bash tail -f .furyctl/furyctl.-.log | jq ``` -------------------------------- ### Kustomize Plugin Example in furyctl.yaml Source: https://docs.sighup.io/archive/installation/sd-configuration/plugins Example snippet for installing the Local Path Provisioner using a Kustomize plugin within the furyctl.yaml file. ```yaml ... spec: ... plugins: kustomize: - name: local-path-provisioner folder: "./plugins/local-path-provisioner" ``` -------------------------------- ### Re-run installation after storage class setup Source: https://docs.sighup.io/archive/getting-started/distro-on-vms Command to re-run the installation after a storage class has been set up, skipping dependency downloads and focusing on the distribution phase. ```bash furyctl apply --outdir $PWD --skip-deps-download --phase distribution ``` -------------------------------- ### Create an example configuration file Source: https://docs.sighup.io/archive/reference/EKSCluster An example configuration file can be created by running the following command: ```bash furyctl create config --kind EKSCluster --version v1.29.4 --name example-cluster ``` -------------------------------- ### Install Prometheus Helm chart Source: https://docs.sighup.io/furyctl/advanced-usage Example configuration for `furyctl.yaml` to install the Prometheus Helm chart, including specifying the repository, chart details, version, and overriding values. ```yaml ... spec: ... plugins: helm: repositories: - name: prometheus-community url: https://prometheus-community.github.io/helm-charts releases: - name: prometheus namespace: prometheus chart: prometheus-community/prometheus version: "24.3.0" set: - name: server.replicaCount value: 3 values: - path/to/values.yaml ```