community-operator-v2

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2022 License: MIT Imports: 11 Imported by: 0

README

community-operator-v2

Manage Community lifecycle via Kubernetes CRDs

made with Go Github master branch build GitHub issues GitHub pull requestsArtifact Hub

Concept

community-operator-v2 is a Kubernetes operator. This operator watch and reconcile the custom resources to manage the community lifecycle.

currently supported:

  • Support Telegram Handler
  • Support Twitter Handler
  • Support Slack Handler
  • Support Discord Handler
  • Support Facebook Handler
  • Support Instagram Handler
  • Manage and broadcast community message like weekly, announcement, and meetup automatically.
  • Auto generate Meetup poster
  • Auto generate community website and populate community message like weekly, announcement and meetup.
Community CRD

Define a community, you can create multiple community object to manage multiple community.

apiVersion: community.zufardhiyaulhaq.com/v1alpha1
kind: Community
metadata:
  name: community-sample
spec:
  socialMedia:
    telegram:
    - telegramhandler-sample
    twitter:
    - twitterhandler-sample

You can define list of social media that this community run. Any message like weekly, announcement, and meetup will automatically broadcasted in all the community social media. spec.socialMedia.telegram is a list of TelegramHandler object and spec.socialMedia.twitter is a list of TwitterHandler object.

TelegramHandler CRD

Define an entrypoint to access the community telegram channel or group.

apiVersion: community.zufardhiyaulhaq.com/v1alpha1
kind: TelegramHandler
metadata:
  name: telegramhandler-sample
spec:
  type: group
  credential: "-9999999999"
  authentication:
    token:
      secret:
        name: telegramhandler-secret-sample
        key: token

spec.type support both group and channel.

TwitterHandler CRD

Define an entrypoint to access the community twitter account.

apiVersion: community.zufardhiyaulhaq.com/v1alpha1
kind: TwitterHandler
metadata:
  name: twitterhandler-sample
spec:
  authentication:
    apiKey:
      secret:
        name: twitterhandler-secret-sample
        key: apiKey
    apiKeySecret:
      secret:
        name: twitterhandler-secret-sample
        key: apiKeySecret
    accessToken:
      secret:
        name: twitterhandler-secret-sample
        key: accessToken
    accessTokenSecret:
      secret:
        name: twitterhandler-secret-sample
        key: accessTokenSecret
Announcement CRD

You can send custom announcement to your community via Announcement CRD.

apiVersion: community.zufardhiyaulhaq.com/v1alpha1
kind: Announcement
metadata:
  name: announcement-sample
spec:
  community:
  - "community-sample"
  spec:
    subject: Your subject here
    body: >-
      Your Announcement Body here
    imageUrl: https://your.image.here
    tags:
      - list
      - of
      - tag

You can select multiple Community object under spec.community.

Meetup CRD

You can send Meetup message to your community.

apiVersion: community.zufardhiyaulhaq.com/v1alpha1
kind: Meetup
metadata:
  name: meetup-sample
spec:
  community:
  - "community-sample"
  spec:
    name: "name"
    date: "date"
    time: "time"
    place: "place"
    registrationUrl: https://your.registration.url.here
    imageUrl: https://your.image.here
    tags:
      - list
      - of
      - tag
    sponsors:
    - name: sponsor-name
    speakers:
      - name: speaker-name
        position: speaker-position
        company: speaker-company
        title: talk-title

You can select multiple Community object under spec.community.

Weekly CRD

Weekly is a update about your community. In tech community, things keep changing every week and we need a specific handler to send weekly update to the community.

apiVersion: community.zufardhiyaulhaq.com/v1alpha1
kind: Weekly
metadata:
  name: weekly-sample
spec:
  community:
  - "community-sample"
  spec:
    name: "name"
    date: "date"
    imageUrl: https://your.image.here
    tags:
      - list
      - of
      - tag
    articles:
    - title: article-title
      url: https://your.article.url.here
      type: article-type

You can select multiple Community object under spec.community.

Installing

To install the chart with the release name my-release:

helm repo add community-operator-v2 https://zufardhiyaulhaq.com/community-operator-v2/charts/releases/
helm install my-community-operator-v2 community-operator-v2/community-operator-v2 --values values.yaml

Usage

  1. Apply some example
kubectl apply -f examples/

Values

Key Type Default Description
operator.image string "zufardhiyaulhaq/community-operator-v2"
operator.replica int 1
operator.tag string "v1.0.0"
resources.limits.cpu string "200m"
resources.limits.memory string "100Mi"
resources.requests.cpu string "100m"
resources.requests.memory string "20Mi"

see example files here

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the community v1alpha1 API group +kubebuilder:object:generate=true +groupName=community.zufardhiyaulhaq.com
Package v1alpha1 contains API Schema definitions for the community v1alpha1 API group +kubebuilder:object:generate=true +groupName=community.zufardhiyaulhaq.com
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL