Portfolio Kubernetes Operator

Helm ChecksSemantic Release

Manage your portfolio natively in your kubernetes cluster.

What is it?

With the Portfolio Operator you can define the state of your portfolio dynamically using the Portfolio Custom Resource. Portfolio’s will also be automatically created by annotating ingresses with the supported annotations.

The spec of these Portfolio’s is conveniently available through a CRUD api so it can be queried for your portfolio website without exposing your cluster.

Install with Helm

The chart is available as an image on ghcr

helm install portfolio-operator oci://ghcr.io/criyl/portfolio-operator

Supported Ingress Annotations

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  annotations:
    portfolio-operator/name: "portfolio-operator"
    portfolio-operator/url: "https://portfolio-operator.carroll.codes"
    portfolio-operator/blog: "https://github.com/Criyl/portfolio-operator"
    portfolio-operator/icon: "https://portfolio-operator.carroll.codes/swagger/favicon-16x16.png"
    portfolio-operator/healthcheck: "https://portfolio-operator.carroll.codes/health"
    portfolio-operator/tags: "tag1,tag2,tag3"
...

Portfolio CRD

apiVersion: carroll.codes/v1
kind: Portfolio
metadata:
  name: portfolio-portfolio-ingress
spec:
  name: portfolio-operator
  url: https://portfolio-operator.carroll.codes
  blog: https://github.com/Criyl/portfolio-operator
  icon: https://portfolio-operator.carroll.codes/swagger/favicon-16x16.png
  healthcheck: https://portfolio-operator.carroll.codes/health
  tags:
  - tag1
  - tag2
  - tag3

Environment Variables

KEYDESCRIPTIONDEFAULT
KUBECONFIGPath to kubernetes config~/.kube/config
DEBUGDeploy with swagger UItrue
HOSTHost to serve CRUD api0.0.0.0
PORTalias for API_PORT
API_PORTPort to serve CRUD api8080
METRICS_PORTPort to serve Controller Metrics api8081