Sign inSign up

kubexorg/deployer

By kubexorg

•Updated 5 months ago

All-in-one K8s toolkit: kubectl, helm, argocd, kustomize, velero, trivy, pluto, cnpg, vault + more

Image
0

2.0K

kubexorg/deployer repository overview

⁠kubexorg/deployer

All-in-one Kubernetes platform automation toolkit for GitOps, disaster recovery, security scanning, and database management.

⁠🛠️ Tools Included

ToolVersionPurpose
kubectlv1.32.13Kubernetes CLI
helmv3.21.0Kubernetes package manager
argocdv3.3.10GitOps deployment CLI
kargov1.9.5Progressive delivery and promotion
kustomizev5.8.1Kubernetes manifest customization
velerov1.18.1Backup and disaster recovery
kubectl-cnpgv1.28.0CloudNativePG PostgreSQL management
trivyv0.70.0Security vulnerability scanner
plutov5.24.0Deprecated API version detection
yqv4.53.2YAML processor
vaultv1.21.4HashiCorp Vault CLI
jqlatestJSON processor
curllatestHTTP client
gitlatestVersion control
bashlatestShell

⁠🚀 Quick Start

⁠Pull from Docker Hub
docker pull kubexorg/deployer:1.0.0
⁠Run Interactively
docker run -it --rm kubexorg/deployer:1.0.0
⁠Run with Kubeconfig
docker run -it --rm \
  -v ~/.kube/config:/home/automation/.kube/config:ro \
  kubexorg/deployer:1.0.0 \
  kubectl get nodes

⁠💡 Use Cases

⁠GitOps Automation
# ArgoCD sync
docker run --rm kubexorg/deployer:1.0.0 \
  argocd app sync my-app --prune

# Create ArgoCD token
docker run --rm kubexorg/deployer:1.0.0 \
  argocd account generate-token --account automation
⁠Disaster Recovery
# Create Velero backup
docker run --rm kubexorg/deployer:1.0.0 \
  velero backup create emergency-backup \
  --include-namespaces production

# PostgreSQL cluster status
docker run --rm kubexorg/deployer:1.0.0 \
  kubectl cnpg status keycloak-postgres -n keycloak

# Point-in-Time Recovery
docker run --rm kubexorg/deployer:1.0.0 \
  kubectl cnpg restore my-cluster \
  --target-time "2025-12-13 14:30:00"
⁠Security Scanning
# Scan container image
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
  kubexorg/deployer:1.0.0 \
  trivy image myapp:latest

# Detect deprecated Kubernetes APIs
docker run --rm kubexorg/deployer:1.0.0 \
  pluto detect-all-in-cluster
⁠Database Management
# Trigger PostgreSQL backup
docker run --rm kubexorg/deployer:1.0.0 \
  kubectl cnpg backup my-postgres-cluster

# Promote replica to primary
docker run --rm kubexorg/deployer:1.0.0 \
  kubectl cnpg promote my-postgres-cluster 2

# Check replication status
docker run --rm kubexorg/deployer:1.0.0 \
  kubectl cnpg status my-postgres-cluster --verbose
⁠Secrets Management
# Read from Vault
docker run --rm -e VAULT_ADDR=https://vault.example.com \
  kubexorg/deployer:1.0.0 \
  vault kv get secret/data/myapp

# Process YAML with yq
docker run --rm -v $(pwd):/data \
  kubexorg/deployer:1.0.0 \
  yq eval '.spec.replicas = 3' /data/deployment.yaml

⁠🔧 Kubernetes Integration

⁠CronJob Example
apiVersion: batch/v1
kind: CronJob
metadata:
  name: daily-backup
  namespace: platform
spec:
  schedule: "0 2 * * *"  # Daily at 2 AM
  jobTemplate:
    spec:
      template:
        spec:
          serviceAccountName: backup-automation
          containers:
          - name: backup
            image: kubexorg/deployer:1.0.0
            command:
            - /bin/bash
            - -c
            - |
              velero backup create daily-backup-$(date +%Y%m%d) \
                --include-namespaces production,staging \
                --wait
          restartPolicy: OnFailure
⁠ArgoCD Job Example
apiVersion: batch/v1
kind: Job
metadata:
  name: argocd-token-setup
  namespace: argocd
  annotations:
    argocd.argoproj.io/sync-wave: "-10"
spec:
  template:
    spec:
      serviceAccountName: argocd-admin
      containers:
      - name: setup
        image: kubexorg/deployer:1.0.0
        command:
        - /bin/bash
        - -c
        - |
          argocd login argocd-server --username admin --password $ADMIN_PASSWORD
          argocd account generate-token --account automation --expires-in 8760h
        env:
        - name: ADMIN_PASSWORD
          valueFrom:
            secretKeyRef:
              name: argocd-initial-admin-secret
              key: password
      restartPolicy: Never
⁠Platform Health Check
apiVersion: batch/v1
kind: CronJob
metadata:
  name: platform-health-check
  namespace: monitoring
spec:
  schedule: "*/15 * * * *"  # Every 15 minutes
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: health-check
            image: kubexorg/deployer:1.0.0
            command:
            - /bin/bash
            - -c
            - |
              # Check ArgoCD apps
              argocd app list --output json | jq -r '.[] | select(.status.health.status != "Healthy") | .metadata.name'

              # Check deprecated APIs
              pluto detect-all-in-cluster --output json

              # Check PostgreSQL clusters
              kubectl get cluster -A -o json | jq -r '.items[] | select(.status.phase != "Cluster in healthy state") | .metadata.name'
          restartPolicy: OnFailure

⁠📦 Image Details

  • Base Image: debian:trixie-slim
  • Architecture: linux/amd64
  • User: Non-root (UID 1000, user: automation)
  • Working Directory: /home/automation
  • Shell: bash

⁠🔒 Security

⁠Non-Root User

The image runs as a non-root user (automation, UID 1000) by default for enhanced security.

Tag summary

Content type

Image

Digest

sha256:961100ceb…

Size

693.3 MB

Last updated

5 months ago

docker pull kubexorg/deployer