npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@choerodon/devops

v1.1.6

Published

English | [简体中文](./README.md)

Downloads

53

Readme

English | 简体中文

DevOps Service

DevOps Service is the continuous delivery service of Choerodon. Current version: 0.21.0

DevOps Service integrated several open source tools to automate the process of planning, coding, building, testing, deployment, operation and monitoring. After a little simple configuration, you'll get the smoothest development experience.

Feature

DevOps Service contains features as follows:

  • Application Service Management: Manage the application service
  • Application service version management: Manage the versions released during the Continuous Integration process of the services, which can be deployed directly in the Kubernetes cluster
  • Code management & version control: Manage the code of the application service with version control
  • Branch management: Able to operate the git branches of the application service
  • Code Quality Analysis:data of code quality are collected during CI, SonarQube is integrated.
  • Continuous Integration Overview: Glance at the Continuous Integration process
  • Deployment Management: Deploy the versions from CI by GitOps
  • Continuous Deployment Pipeline Management: Achieve the Continuous Deployment by workflow
  • Resource Management: Manage the resource(e.g., secret)
  • Cluster Management: Manage the cluster of Kubernetes

Requirements

  • JAVA: DevOps Service is based on java8
  • GitLab: GitLab is used as code repository. At the same time, Continuous Integration based on GitLab Runner is used to complete code compilation, unit test execution, code quality analysis, docker image generation, helm chart packaging, service version releasing and other automated processes
  • Harbor: Enterprise Docker registry service for hosting the docker images for the service versions
  • Kubernetes: Container orchestration management tool for deploying the helm chart packages corresponding to the service versions
  • ChartMuseum: Helm Chart Repository server., which is used to store the helm chart package corresponding to the service versions
  • Sonarqube: SonarQube empowers all developers to write cleaner and safer code for application services
  • MySQL: one of the most popular relational databases, for data persistence of DevOps Service
  • Redis: In-memory database for data caching and partial non-persistent data storage

Dependencies

  • choerodon-register: Register server, in place of eureka-server
  • choerodon-iam:Iam service
  • choerodon-gateway: Gateway service
  • choerodon-oauth: Oauth service
  • choerodon-asgard : Transaction consistency service
  • choerodon-message : Notify service
  • gitlab-service:Service to communicate with gitlab
  • workflow-service:Workflow service
  • agile-service:Agile service

Service Configuration

  • bootstrap.yml:

    server:
      port: 8060
    spring:
      application:
        name: devops-service
      cloud:
        config:
          failFast: true
          retry:
            maxAttempts: 6
            multiplier: 1.5
            maxInterval: 2000
          uri: localhost:8010
          enabled: false
      mvc:
        static-path-pattern: /**
      resources:
        static-locations: classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,file:/dist
    management:
      server:
        port: 8061
      endpoints:
        web:
          exposure:
            include: '*'
  • application.yml:

    spring:
      datasource:
        url: jdbc:mysql://localhost/devops_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
        username: choerodon
        password: choerodon
        hikari:
          maximum-pool-size: 15
      redis:
        host: localhost
        database: ${SPRING_REDIS_DATABASE:1}
      http:
        encoding:
          charset: UTF-8
          force: true
          enabled: true
    services:
      harbor:
        baseUrl: "harbor.example.com" # harbor url
        username: "123456" # harbor username
        password: "123456" # password corresponding to harbor user
        insecureSkipTlsVerify: false
      gitlab:
        url: "gitlab.example.com" # gitlab url
        sshUrl: "gitlab.example.com" # gitlab url for ssh operations
        projectLimit: 100 # the limit of the project number that a user can create
      helm:
        url: "helm.example.com" # the repository url to place helm charts
      gateway:
        url: "http://api.example.com" # the domain of the hzero gateway
    hzero:
      websocket:
        # the path for websocket connection
        websocket: /websocket
        # consistent with the redis db above
        redisDb: ${SPRING_REDIS_DATABASE:1}
        # the secret for websocket
        secretKey: devops_ws
    choerodon:
      saga:
        consumer:
          core-thread-num: 20
          max-thread-num:  20 # consumer thread number
          poll-interval: 3 # the interval for polling messages, default 1s
          enabled: true # whether to enable consumer client
      schedule:
        consumer:
          enabled: true # enable schedule consume
          thread-num: 1 # thread number for consuming
          poll-interval-ms: 1000 # the interval for polling messages, default 1000ms
      resource:
        jwt:
          ignore: /workflow/**, /sonar/**, /ci, /sonar/info, /v2/api-docs, /agent/**, /ws/**, /gitlab/email, /webhook/**, /v2/choerodon/**, /choerodon/**, /actuator/**, /prometheus, /devops/**, /pre_stop, /websocket
    agent:
      version: "0.5.0" # expect choerodon-agent version for this devops-service version
      serviceUrl: "agent.example.com" # url for choerodon-agent to connect devops-service
      certManagerUrl: "agent.example.com" # the location to store the CertManager for installation
      repoUrl: "helm.example.com" # the location to store the agent package itself for installation
    mybatis:
      mapperLocations: classpath*:/mapper/*.xml
      configuration:
        mapUnderscoreToCamelCase: true
    feign:
      hystrix:
        shareSecurityContext: true
        command:
          default:
            execution:
              isolation:
                thread:
                  timeoutInMilliseconds: 30000
    ribbon:
      ConnectTimeout: 50000
      ReadTimeout: 50000
    
    asgard-servie:
      ribbon:
        ConnectTimeout: 50000
        ReadTimeout: 50000
    
    # websocket max buffer size (byte)
    websocket:
      buffer:
        maxTextMessageSize: 4194304
        maxBinaryMessageSize: 4194304

Installation and Getting Started

  1. create database devops_service, create user choerodon and grant permission:

    CREATE USER 'choerodon'@'%' IDENTIFIED BY "choerodon";
    CREATE DATABASE devops_service DEFAULT CHARACTER SET utf8;
    GRANT ALL PRIVILEGES ON devops_service.* TO choerodon@'%';
    FLUSH PRIVILEGES;
  2. pull source code of DevOps Service:

    git clone https://github.com/choerodon/devops-service.git
  3. Execute command in the project root directory: mvn clean package spring-boot:repackage -Dmaven.test.skip=true && bash init-database.sh

  4. Run with the following commands or run DevopsServiceApplication directly in the integrated environment:

    mvn clean spring-boot:run

Links

ChangeLog

Reporting Issues

If you find any shortcomings or bugs, please describe them in the issue.

How to Contribute

Pull requests are welcomed! Follow to know for more information on how to contribute.