Skip to content

ITfoxtec/FoxIDs.Kubernetes-CD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FoxIDs Kubernetes Continuous Delivery

This repository packages the continuous delivery assets used to run FoxIDs on Kubernetes. FoxIDs is a cloud-first identity and access control platform, and these manifests, bootstrapping scripts, and GitOps definitions let you deploy it reproducibly across environments.

Highlights

  • GitOps-first workflow driven by Argo CD, ensuring cluster state matches what is committed to this repo.
  • Choice of single-instance or HA-cluster FoxIDs topologies, with MongoDB and OpenSearch sizing that can scale from single pods to larger clusters as needed.
  • Bootstrap automation with either plain kubectl manifests or Terraform modules so you can pick the provisioning style that fits your platform team.
  • Opinionated defaults for ingress, TLS certificates (Let's Encrypt via cert-manager), secrets templates, and domain naming to speed up initial setup while remaining customizable.
  • Structured layout that separates stateless FoxIDs components, stateful data services, and supporting infrastructure for clarity and composability.

Repository Layout

  • Single-instance - compact deployment for development, demos, or small installations with single instance MongoDB and OpenSearch. Includes Terraform, kubectl bootstrap, and the Argo CD application definitions.
  • Single-instance console log - same as Single-instance but without OpenSearch and with logs written to the console.
  • HA-cluster - production-focused deployment with horizontally scalable FoxIDs services plus MongoDB and OpenSearch ready to scale beyond single-instance defaults. Provides detailed guidance and Argo CD apps for each subsystem.
  • HA-cluster Istio - workspace reserved for service-mesh enabled topologies (Istio). Populate this when you need mTLS, traffic shaping, or mesh gateways in front of FoxIDs.

Each topology folder contains:

  • kubectl-setup/ - manifests and Kustomize overlays to bootstrap the cluster with core namespaces, secrets, and Argo CD.
  • terraform-setup/ - Terraform modules that apply the same bootstrap actions declaratively.
  • app/ - the Argo CD applications responsible for reconciling FoxIDs, MongoDB, OpenSearch, ingress, and supporting components once Argo CD is running.

Deployment Flow

  1. Clone the repository and choose the topology folder that matches your capacity and availability needs.
  2. Search and replace placeholder domains such as test-single-instance.foxids.com or test-ha-cluster.foxids.com, along with placeholder email addresses like [email protected].
  3. Provide cluster access by placing your kubeconfig.yml under the appropriate kubectl-setup or terraform-setup directory.
  4. Bootstrap the cluster using either kubectl or Terraform instructions from the chosen topology README. This installs Argo CD and supporting primitives.
  5. Point Argo CD at the app/ manifests and monitor reconciliation. Argo CD will deploy FoxIDs services, databases, ingress, TLS issuers, and optional dashboards.
  6. Continue managing releases through Git: merge changes to manifests, and let Argo CD propagate them to the cluster.

Customization Checklist

  • Update DNS records so Let''s Encrypt (via cert-manager) can validate your domains and issue certificates.
  • Rotate the placeholder secrets (FoxIDs, MongoDB, OpenSearch, Argo CD) before moving to production.
  • Adjust resource requests, storage classes, and replica counts to match workload expectations.
  • Enable or disable optional components such as OpenSearch Dashboards depending on operational needs.

Where to Go Next

Contributions and adaptations are welcome. Adjust the manifests to align with your organization''s standards, and keep changes under version control so Argo CD can manage them automatically.

About

Kubernetes Continuous Delivery/Deployment (CD)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages