Service
In Skyhook, a service is your unit of deployment: the code that gets packaged and deployed together across environments. It could be a microservice, API, or web application. Think of it from a development team’s perspective: a service is typically “owned” by a person or team and includes everything related to it, including deployment process, testing, observability, and configuration. Key characteristics:- Has its own repository (or path in a monorepo)
- Deploys to one or more environments
- Configured with container settings, resources, and scaling rules
- Can expose APIs via ingress/networking configuration
This is different from the Kubernetes Service object, which is a low-level networking abstraction. Skyhook helps you configure Kubernetes Services as part of managing your service deployment.
Jobs
Jobs in Skyhook are one-time or scheduled tasks that run to completion. Unlike services that run continuously, jobs execute, finish, and exit. Common use cases:- Database migrations
- Scheduled data processing (cron jobs)
- Batch operations
- CI/CD tasks
Environment
An environment in Skyhook represents where your services run (e.g.,dev, staging, production).
Two types of environments:
Static Environments
Long-lived, shared environments where services run together. Your team decides which services deploy to which environments and which versions run in each. Examples:production, staging, dev, qa
Preview (Ephemeral)Environments
Temporary environments created on-demand, typically for pull requests or feature branches. These spin up, get tested, and are automatically cleaned up when no longer needed. Example: A preview environment for PR #123 that includes your service and its dependenciesNot to be confused with development environments (IDEs, dev tools), which are about building code, not deploying it.
Cluster
A Kubernetes cluster is where your services and jobs actually run. It’s a group of machines (nodes) that run containerized applications, managed by Kubernetes. Skyhook connects to your clusters and helps you manage deployments, but the clusters remain in your cloud account and you retain full control. Key points:- You can connect multiple clusters (for different regions, environments, or teams)
- Clusters can be in AWS, GCP, Azure, or any Kubernetes-compatible platform
- Skyhook’s Cluster Connector runs in your cluster to enable management
GitOps
GitOps is an optional operational model where your Git repository is the source of truth for infrastructure and application configuration. With Skyhook, you can choose to use GitOps via ArgoCD:- Your desired state is defined in Git (via YAML manifests)
- ArgoCD continuously syncs your cluster to match Git
- Changes are made via pull requests, providing audit trails and easy rollbacks
Cluster Connector vs Skyhook Agent
Skyhook has two distinct components that work together:Cluster Connector
A lightweight software component that runs inside your Kubernetes cluster. Also known as the Skyhook Cluster Connector or Skyhook Connector, it provides Skyhook with visibility into your cluster by fetching resource information on demand. What it does:- Reads Kubernetes resources (pods, deployments, services, etc.)
- Maintains a fast in-memory cache for quick queries
- Fetches logs from your services
- Cleans up ephemeral preview environments when they’re no longer needed
- Does not deploy workloads (deployments happen via GitOps or CI/CD)
- Does not modify resources (except deleting ephemeral namespaces)
- Does not access secrets
Skyhook Agent
An AI-powered assistant that helps you interact with Skyhook, debug issues, and understand your setup. What it does:- Answers questions about your services and cluster
- Helps troubleshoot deployment issues
- Suggests configurations and best practices
- Provides insights based on your actual setup
Ready to get started? Head to our Quick Start guide.
