From eca17ae5cf08fc599f83a1345abe2fd5088c4e55 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sun, 30 Nov 2025 08:19:13 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 15 ++++ README.md | 3 + commands/pipeline-orchestrate.md | 25 ++++++ plugin.lock.json | 69 +++++++++++++++ .../deployment-pipeline-orchestrator/SKILL.md | 52 ++++++++++++ .../assets/README.md | 7 ++ .../assets/example_config.yaml | 84 +++++++++++++++++++ .../assets/pipeline_template.yaml | 77 +++++++++++++++++ .../references/README.md | 8 ++ .../scripts/README.md | 8 ++ 10 files changed, 348 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 commands/pipeline-orchestrate.md create mode 100644 plugin.lock.json create mode 100644 skills/deployment-pipeline-orchestrator/SKILL.md create mode 100644 skills/deployment-pipeline-orchestrator/assets/README.md create mode 100644 skills/deployment-pipeline-orchestrator/assets/example_config.yaml create mode 100644 skills/deployment-pipeline-orchestrator/assets/pipeline_template.yaml create mode 100644 skills/deployment-pipeline-orchestrator/references/README.md create mode 100644 skills/deployment-pipeline-orchestrator/scripts/README.md diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..6164ca4 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "deployment-pipeline-orchestrator", + "description": "Orchestrate complex multi-stage deployment pipelines", + "version": "1.0.0", + "author": { + "name": "Claude Code Plugins", + "email": "[email protected]" + }, + "skills": [ + "./skills" + ], + "commands": [ + "./commands" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..6d76d6f --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# deployment-pipeline-orchestrator + +Orchestrate complex multi-stage deployment pipelines diff --git a/commands/pipeline-orchestrate.md b/commands/pipeline-orchestrate.md new file mode 100644 index 0000000..31f5ee9 --- /dev/null +++ b/commands/pipeline-orchestrate.md @@ -0,0 +1,25 @@ +--- +description: $(echo "$description" | cut -d' ' -f1-5) +--- + +# $(echo "$name" | sed 's/-/ /g' | sed 's/\b\(.\)/\u\1/g') + +$(echo "$description") + +## Key Features + +- Production-ready configurations +- Best practices implementation +- Security-first approach +- Scalable architecture +- Comprehensive documentation +- Multi-platform support + +## Example Usage + +This plugin generates complete configurations for your DevOps needs. +Specify your requirements and get production-ready code instantly. + +## When Invoked + +Generate configurations and setup code based on your specific requirements and infrastructure needs. diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..d871cf9 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,69 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:jeremylongshore/claude-code-plugins-plus:plugins/devops/deployment-pipeline-orchestrator", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "37b4e917960753043ed828659f37410f49bb4bd0", + "treeHash": "2a2124060c5d0f25186de48391518320088c8e3d8226420e122778e0cf17c4de", + "generatedAt": "2025-11-28T10:18:23.334056Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "deployment-pipeline-orchestrator", + "description": "Orchestrate complex multi-stage deployment pipelines", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "a90f29dddf8a8e81e553f0fa3d1deb629435c7cd00a5a76425b55f92c74490ee" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "923677b9c035b637e2e748c1b71df73c1d501de52c35cc7e934ce51fb94d178b" + }, + { + "path": "commands/pipeline-orchestrate.md", + "sha256": "353f80054a90cda1e6716da3628115ce829307fbbb83a15b64f1d37c96224a99" + }, + { + "path": "skills/deployment-pipeline-orchestrator/SKILL.md", + "sha256": "4a5f1d326cd446b58cf3ee811498d241f1d22dd29d1e06e67ed5ac94e5c59016" + }, + { + "path": "skills/deployment-pipeline-orchestrator/references/README.md", + "sha256": "d3425545d7ef07f611d88c12fdabfe6803daa391e31800f3472603609d0806f7" + }, + { + "path": "skills/deployment-pipeline-orchestrator/scripts/README.md", + "sha256": "35bf0a16dfde842abea737fc0bb09d27f152ae31aea3d2490a5aa539f011221c" + }, + { + "path": "skills/deployment-pipeline-orchestrator/assets/pipeline_template.yaml", + "sha256": "080d2c7aeafd179d594be5a047e28354aa7c2c6f6dd2ea4a7f4d2a291157d033" + }, + { + "path": "skills/deployment-pipeline-orchestrator/assets/README.md", + "sha256": "600b1c4188ebade5b607a566d47ab012b54784823d6c28894b107c03fbdfa4a1" + }, + { + "path": "skills/deployment-pipeline-orchestrator/assets/example_config.yaml", + "sha256": "e761a51766bb40cdf0dcf62aefafba7547b594d3c70c486365d6e7588fe79dfa" + } + ], + "dirSha256": "2a2124060c5d0f25186de48391518320088c8e3d8226420e122778e0cf17c4de" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file diff --git a/skills/deployment-pipeline-orchestrator/SKILL.md b/skills/deployment-pipeline-orchestrator/SKILL.md new file mode 100644 index 0000000..688bb84 --- /dev/null +++ b/skills/deployment-pipeline-orchestrator/SKILL.md @@ -0,0 +1,52 @@ +--- +name: orchestrating-deployment-pipelines +description: | + This skill orchestrates complex, multi-stage deployment pipelines. It generates production-ready configurations and setup code based on user-specified requirements and infrastructure. Use this skill when the user asks to create a deployment pipeline, generate CI/CD configurations, or needs help with automating software deployments. Trigger terms include "deployment pipeline", "CI/CD", "automate deployment", "pipeline configuration", and "deployment orchestration". +allowed-tools: Read, Write, Edit, Grep, Glob, Bash +version: 1.0.0 +--- + +## Overview + +This skill allows Claude to create and manage deployment pipelines, ensuring efficient and reliable software releases. It simplifies the process of configuring and automating deployments across various platforms. + +## How It Works + +1. **Requirement Gathering**: Claude identifies the user's specific deployment requirements, including target environment, deployment stages, and security considerations. +2. **Configuration Generation**: Based on the gathered requirements, Claude generates production-ready configuration files for the deployment pipeline. +3. **Code Generation**: Claude creates necessary setup code to automate the deployment process, integrating best practices and security measures. + +## When to Use This Skill + +This skill activates when you need to: +- Create a new deployment pipeline from scratch. +- Generate CI/CD configurations for automating software deployments. +- Automate the deployment process across multiple environments. + +## Examples + +### Example 1: Setting up a Production Deployment Pipeline + +User request: "Set up a production deployment pipeline for a web application using Docker and Kubernetes." + +The skill will: +1. Generate a Kubernetes deployment configuration file. +2. Create a Dockerfile for containerizing the web application. + +### Example 2: Automating CI/CD with GitLab + +User request: "Automate CI/CD for a Python microservice using GitLab." + +The skill will: +1. Generate a `.gitlab-ci.yml` file defining the CI/CD pipeline stages (build, test, deploy). +2. Create scripts for automated testing and deployment to a staging environment. + +## Best Practices + +- **Security**: Always prioritize security by incorporating vulnerability scanning and secure coding practices into the pipeline. +- **Automation**: Automate as many steps as possible to reduce manual errors and increase efficiency. +- **Testing**: Implement comprehensive testing at each stage of the pipeline to ensure code quality and stability. + +## Integration + +This skill can integrate with other Claude Code plugins related to infrastructure provisioning, security analysis, and code quality checks to create a fully automated DevOps workflow. \ No newline at end of file diff --git a/skills/deployment-pipeline-orchestrator/assets/README.md b/skills/deployment-pipeline-orchestrator/assets/README.md new file mode 100644 index 0000000..83f42cd --- /dev/null +++ b/skills/deployment-pipeline-orchestrator/assets/README.md @@ -0,0 +1,7 @@ +# Assets + +Bundled resources for deployment-pipeline-orchestrator skill + +- [ ] pipeline_template.yaml: A template for creating new deployment pipelines, providing a starting point for users to customize. +- [ ] example_config.yaml: An example deployment pipeline configuration file, demonstrating how to configure the pipeline for a specific application. +- [ ] sample_scripts/: A directory containing sample scripts for common deployment tasks, such as database migration and service restart. diff --git a/skills/deployment-pipeline-orchestrator/assets/example_config.yaml b/skills/deployment-pipeline-orchestrator/assets/example_config.yaml new file mode 100644 index 0000000..3ed8e7b --- /dev/null +++ b/skills/deployment-pipeline-orchestrator/assets/example_config.yaml @@ -0,0 +1,84 @@ +# example_config.yaml +# Configuration file for the Deployment Pipeline Orchestrator plugin. + +# General pipeline settings +pipeline_name: "Example Application Deployment" # Name of this deployment pipeline +application_name: "ExampleApp" # Name of the application being deployed +environment: "production" # Target environment (e.g., staging, production, development) + +# Source code repository settings +repository: + type: "git" # Type of repository (e.g., git, svn) + url: "https://github.com/YOUR_GITHUB_USERNAME/ExampleApp.git" # URL of the repository + branch: "main" # Branch to deploy from + credentials: + username: "YOUR_GITHUB_USERNAME" # Username for accessing the repository (if required) + password: "YOUR_GITHUB_PASSWORD" # Password or token for accessing the repository (if required, consider using secrets management) + +# Build stage configuration +build: + enabled: true # Whether to enable the build stage + builder: "docker" # Build tool to use (e.g., docker, maven, gradle) + dockerfile_path: "Dockerfile" # Path to the Dockerfile (if using Docker) + context_path: "." # Build context path + image_name: "example-app" # Name of the Docker image to build + image_tag: "latest" # Tag for the Docker image + registry: # Docker registry settings (optional) + url: "docker.io" # URL of the Docker registry + username: "YOUR_DOCKER_USERNAME" # Username for accessing the registry + password: "YOUR_DOCKER_PASSWORD" # Password or token for accessing the registry (if required, consider using secrets management) + build_args: # Additional build arguments (optional) + - "VERSION=1.0.0" + +# Test stage configuration +test: + enabled: true # Whether to enable the test stage + test_runner: "pytest" # Testing framework (e.g., pytest, unittest) + test_command: "pytest tests/" # Command to run the tests + dependencies: # Dependencies required for testing (optional) + - "pytest" + - "requests" + +# Deploy stage configuration +deploy: + enabled: true # Whether to enable the deploy stage + deployment_platform: "kubernetes" # Platform to deploy to (e.g., kubernetes, aws, azure) + kubernetes: # Kubernetes deployment settings (required if deployment_platform is kubernetes) + namespace: "example-app-ns" # Kubernetes namespace + deployment_file: "k8s/deployment.yaml" # Path to the Kubernetes deployment file + service_file: "k8s/service.yaml" # Path to the Kubernetes service file + ingress_file: "k8s/ingress.yaml" # Path to the Kubernetes ingress file (optional) + image_pull_secret: "docker-registry-secret" # Name of the image pull secret (optional) + aws: # AWS deployment settings (required if deployment_platform is aws) + region: "us-east-1" # AWS region + ecr_repository: "YOUR_ECR_REPOSITORY_NAME" # Name of the ECR repository + ecs_cluster: "YOUR_ECS_CLUSTER_NAME" # Name of the ECS cluster + azure: # Azure deployment settings (required if deployment_platform is azure) + resource_group: "YOUR_RESOURCE_GROUP_NAME" # Name of the Azure resource group + container_registry: "YOUR_CONTAINER_REGISTRY_NAME" # Name of the Azure container registry + +# Monitoring stage configuration +monitor: + enabled: true # Whether to enable the monitor stage + monitoring_tool: "prometheus" # Monitoring tool to use (e.g., prometheus, datadog) + endpoints: # Endpoints to monitor + - "http://localhost:8080/health" + alerts: # Alerting configuration + cpu_usage: # Example alert for CPU usage + threshold: 80 # Percentage threshold + severity: "critical" # Severity of the alert + memory_usage: # Example alert for memory usage + threshold: 90 # Percentage threshold + severity: "warning" # Severity of the alert + +# Notification settings +notifications: + enabled: true # Whether to enable notifications + type: "slack" # Notification type (e.g., slack, email) + slack: # Slack notification settings (required if type is slack) + webhook_url: "REPLACE_ME" # Slack webhook URL + email: # Email notification settings (required if type is email) + sender: "deployments@example.com" # Sender email address + recipients: # List of recipient email addresses + - "admin@example.com" + - "devops@example.com" \ No newline at end of file diff --git a/skills/deployment-pipeline-orchestrator/assets/pipeline_template.yaml b/skills/deployment-pipeline-orchestrator/assets/pipeline_template.yaml new file mode 100644 index 0000000..28f4ac9 --- /dev/null +++ b/skills/deployment-pipeline-orchestrator/assets/pipeline_template.yaml @@ -0,0 +1,77 @@ +# pipeline_template.yaml +# This file is a template for defining deployment pipelines. +# Use it as a starting point and customize it to your specific needs. + +# Metadata about the pipeline +metadata: + name: REPLACE_ME_PIPELINE_NAME # Unique name for your pipeline + description: YOUR_VALUE_HERE # A brief description of what this pipeline does + version: 1.0 # Pipeline version (e.g., semantic versioning) + +# Global configuration settings that apply to the entire pipeline +global_config: + # Environment to deploy to (e.g., development, staging, production) + environment: staging + # Region where the deployment will take place (e.g., us-east-1, eu-west-1) + region: us-east-1 + # Notification settings (e.g., Slack webhook, email address) + notifications: + type: slack + webhook_url: REPLACE_ME_SLACK_WEBHOOK_URL + +# Define the stages of the deployment pipeline +stages: + - name: build + description: Build the application artifact + type: build + # Configuration specific to the build stage + config: + # Build tool to use (e.g., docker, maven, npm) + build_tool: docker + # Path to the Dockerfile + dockerfile_path: ./Dockerfile + # Image name for the built artifact + image_name: REPLACE_ME_DOCKER_IMAGE_NAME + # Tag for the image + image_tag: latest + + - name: test + description: Run automated tests against the built artifact + type: test + # Configuration specific to the test stage + config: + # Test framework to use (e.g., pytest, jest, junit) + test_framework: pytest + # Path to the test scripts + test_path: ./tests + # Command to execute the tests + test_command: pytest + + - name: deploy + description: Deploy the application to the target environment + type: deploy + # Configuration specific to the deploy stage + config: + # Deployment platform (e.g., aws, azure, gcp, kubernetes) + platform: kubernetes + # Namespace to deploy to + namespace: REPLACE_ME_KUBERNETES_NAMESPACE + # Path to the Kubernetes deployment manifest + manifest_path: ./deployment.yaml + # Number of replicas + replicas: 3 + + - name: post_deploy_test + description: Run tests after deployment to confirm success + type: test + config: + test_framework: curl + test_path: ./post_deploy_tests.sh #Example script + test_command: ./post_deploy_tests.sh #Example script + endpoint_url: REPLACE_ME_APPLICATION_ENDPOINT_URL # Example URL to test + +# Rollback strategy in case of deployment failure (optional) +rollback: + enabled: true + # Strategy for rollback (e.g., redeploy previous version, manual intervention) + strategy: redeploy_previous \ No newline at end of file diff --git a/skills/deployment-pipeline-orchestrator/references/README.md b/skills/deployment-pipeline-orchestrator/references/README.md new file mode 100644 index 0000000..4aa2e3c --- /dev/null +++ b/skills/deployment-pipeline-orchestrator/references/README.md @@ -0,0 +1,8 @@ +# References + +Bundled resources for deployment-pipeline-orchestrator skill + +- [ ] pipeline_configuration_schema.json: Defines the schema for the deployment pipeline configuration files, ensuring consistency and validity. +- [ ] best_practices.md: Provides best practices for designing and implementing deployment pipelines, covering topics such as security, scalability, and reliability. +- [ ] supported_platforms.md: Lists the supported platforms and technologies for the deployment pipeline, including operating systems, cloud providers, and deployment tools. +- [ ] error_handling.md: Provides guidance on handling errors and exceptions during the deployment process, including logging, monitoring, and alerting. diff --git a/skills/deployment-pipeline-orchestrator/scripts/README.md b/skills/deployment-pipeline-orchestrator/scripts/README.md new file mode 100644 index 0000000..c7c7709 --- /dev/null +++ b/skills/deployment-pipeline-orchestrator/scripts/README.md @@ -0,0 +1,8 @@ +# Scripts + +Bundled resources for deployment-pipeline-orchestrator skill + +- [ ] init_pipeline.sh: Automates the initial setup of the deployment pipeline, including environment configuration and dependency installation. +- [ ] validate_config.py: Validates the deployment pipeline configuration files against a predefined schema to ensure correctness and prevent errors. +- [ ] deploy.sh: Executes the deployment process, handling tasks such as code deployment, database migration, and service restart. +- [ ] rollback.sh: Executes the rollback process, handling tasks such as code rollback, database migration rollback, and service restart.