/app-operator

Manages apps in Kubernetes clusters, as part of the Giant Swarm app platform

Primary LanguageGoApache License 2.0Apache-2.0

CircleCI

app-operator

The app-operator manages apps in Kubernetes clusters. It is implemented using operatorkit.

Important

Upon releasing a new version of the project, remember to reference it in the Cluster Apps Operator Helm Chart.

Branches

  • master
    • Latest version using Helm 3.
  • helm2
    • Legacy support for Helm 2.

app CR

The operator deploys charts hosted in a Helm repository. The app CRs are used to generate chart CRs managed by chart-operator which is our agent for automating deployments with Helm.

Example app CR

apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  creationTimestamp: null
  labels:
    app-operator.giantswarm.io/version: 1.0.0
  name: prometheus
  namespace: default
spec:
  catalog: my-playground-catalog
  config:
    configMap:
      name: f2def-cluster-values
      namespace: f2def
    secret:
      name: f2def-cluster-values
      namespace: f2def
  kubeConfig:
    context:
      name: f2def
    inCluster: false
    secret:
      name: f2def-kubeconfig
      namespace: f2def
  name: prometheus
  namespace: monitoring
  userConfig:
    configMap:
      name: prometheus-user-values
      namespace: f2def
    secret:
      name: prometheus-user-values
      namespace: f2def
  version: 1.0.1

Getting Project

Clone the git repository: https://github.com/giantswarm/app-operator.git

How to build

Build it using the standard go build command.

go build github.com/giantswarm/app-operator

Updating Chart CRD

  • For workload clusters app-operator manages the chart CRD.
  • When changes are made in apiextensions-application they need to be synced here.
$ make sync-chart-crd

Contact

Contributing & Reporting Bugs

See CONTRIBUTING for details on submitting patches, the contribution workflow as well as reporting bugs.

License

app-operator is under the Apache 2.0 license. See the LICENSE file for details.