+
Skip to content

wjiec/kertical

Repository files navigation

kertical

Go Report Card License Go Tests

Managing and integrating your Homelab on Kubernetes.

Introduction

The goal of kertical is to make it easy to manage and integrate your various environments or services that are not in the cluster through kubernetes, and of course to enhance the ability of kubernetes to provide services outside the cluster through the controllers in kertical.

Getting Started

This tutorial will detail how to configure and install the kertical to your cluster.

Caution

Currently, kertical is in the development phase, so the design and implementation logic may change frequently. If you are using the program or are interested in it, feel free to ask any suggestions or questions.

Install kertical

If you have Helm, you can deploy the mobius with the following command:

helm upgrade --install kertical-manager kertical-manager \
    --repo https://wjiec.github.io/kertical \
    --namespace kertical-system --create-namespace

It will install the kertical in the kertical-system namespace, creating that namespace if it doesn't already exist.

Aliyun registry

If you can't get the image directly through DockerHub, you can use Aliyun's image repository by adding the following parameter to the installation command:

--set global.imageRegistry=registry.cn-hangzhou.aliyuncs.com

Custom Resources

kertical implements the management and integration of various types of resources inside and outside the cluster by means of customized resources (CRD), mainly providing the following kinds.

ExternalProxy

As the name suggests, ExternalProxy creates a unified abstraction for out-of-cluster services, allowing us to create Services or Ingresses for these out-of-cluster content, just like in-cluster resources.

For example, I have some standalone services on my Homelab (TrueNAS, OpenWrt, ...), and I'd like to provide HTTPS ingress for those services via cert-manager or use names within the cluster to access specific services.

We can accomplish what we've said above by doing so in the following way in this manifest file:

kind: ExternalProxy
apiVersion: networking.kertical.com/v1alpha1
metadata:
  name: openwrt
spec:
  backends:
    - addresses:
        - ip: 172.16.1.1
      ports:
        - name: http
          port: 80
  ingress:
    rules:
      - host: openwrt.kertical.com
    tls:
      - hosts:
          - openwrt.kertical.com
        secretName: star-kertical-com
---
kind: ExternalProxy
apiVersion: networking.kertical.com/v1alpha1
metadata:
  name: truenas
spec:
  backends:
    - addresses:
        - ip: 172.16.1.8
      ports:
        - name: api
          port: 80
  service:
    metadata:
      name: truenas-api
      labels:
        app.kubernetes.io/name: truenas

More details can be found at kubectl explain externalproxies --api-version=networking.kertical.com/v1alpha1.

Contributing

We warmly welcome your participation in the development of kertical.

NOTE: Run make help for more information on all potential make targets

More information can be found via the Kubebuilder Documentation

Prerequisites

  • go version v1.24.0+
  • docker version 17.03+.
  • Access to a Kubernetes v1.21.0+ cluster.

License

kertical is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

About

🔬Managing and integrating your Homelab on Kubernetes.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载