Release Apache SkyWalking Cloud on Kubernetes 0.10.0
feat: support Horizon UI in UI CRD via spec.kind discriminator (#199)

Add `spec.kind` (enum: horizon|booster, default horizon) to the UI CRD
so the operator can deploy either the legacy booster-ui image or the
next-generation horizon-ui image from a single CRD.

For kind=horizon the operator:
- defaults image to apache/skywalking-horizon-ui:<version>
- generates a ConfigMap with horizon.yaml and mounts it at
  /app/horizon.yaml (read-only) on the container
- mounts an emptyDir at /data for Horizon's writable state
- listens on port 8081 and updates probes + Service targetPort
- derives oap.adminUrl from <name>-oap.<ns>:17128 and oap.zipkinUrl
  from <OAPServerAddress>/zipkin when not explicitly set

For kind=booster the existing behavior (image apache/skywalking-ui,
port 8080, SW_OAP_ADDRESS env var) is preserved unchanged.

Also exposes port 17128 (admin) on the OAPServer Service so Horizon can
reach runtime-rule, DSL/MQE debug, and inspect endpoints.

Existing e2e + sample YAMLs are pinned to `kind: booster` so their
`apache/skywalking-ui:9.5.0` references keep working under the new
horizon default.
18 files changed
tree: 011f309f6e5b68f621722666a461da41210debf1
  1. .github/
  2. adapter/
  3. build/
  4. dist/
  5. docs/
  6. hack/
  7. operator/
  8. test/
  9. .asf.yaml
  10. .dockerignore
  11. .gitignore
  12. .licenserc.yaml
  13. CHANGES.md
  14. CONTRIBUTING.md
  15. golangci.yml
  16. LICENSE
  17. Makefile
  18. NOTICE
  19. README.md
README.md

Apache SkyWalking Cloud on Kubernetes

A bridge project between Apache SkyWalking and Kubernetes.

SWCK is a platform for the SkyWalking user that provisions, upgrades, maintains SkyWalking relevant components, and makes them work natively on Kubernetes.

Features

  • Java Agent Injector: Inject the java agent into the application pod natively.
    • Inject the java agent into the application pod.
    • Leverage a global configuration to simplify the agent and injector setup.
    • Use the annotation to customize specific workloads.
    • Synchronize injecting status to JavaAgent CR for monitoring purposes.
  • Operator: Provision and maintain SkyWalking backend components.
  • Custom Metrics Adapter: Provides custom metrics coming from SkyWalking OAP cluster for autoscaling by Kubernetes HPA

Quick Start

You can follow the Getting Started to deploy swck on a testing Kubernetes cluster quickly and try out the skywalking components end to end.

Java Agent Injector

  • Install the Operator
  • Label the namespace with swck-injection=enabled
$ kubectl label namespace default(your namespace) swck-injection=enabled
  • Add label swck-java-agent-injected: "true" to the workloads

For more details, please read Java agent injector

Operator

  • To install the operator in an existing cluster, ensure you have cert-manager installed.
  • Apply the manifests for the Controller and CRDs in release/config:
kubectl apply -f skywalking-swck-<SWCK_VERSION>-bin/config/operator-bundle.yaml
  • Also, you could deploy the operator quickly based on Master Branch or Stable Release:
kubectl apply -k "github.com/apache/skywalking-swck/operator/config/default"

or

kubectl apply -k "github.com/apache/skywalking-swck/operator/config/default?ref=v0.8.0"

For more details, please refer to deploy operator

Custom Metrics Adapter

  • Deploy the OAP server by referring to Operator Quick Start.
  • Apply the manifests for an adapter in release/adapter/config:
kubectl apply -f skywalking-swck-<SWCK_VERSION>-bin/config/adapter-bundle.yaml
  • Also, you could deploy the adapter quickly based on Master Branch or Stable Release:
kubectl apply -k "github.com/apache/skywalking-swck/adapter/config"

or

kubectl apply -k "github.com/apache/skywalking-swck/adapter/config?ref=v0.8.0"

For more details, please read Custom metrics adapter

Contributing

For developers who want to contribute to this project, see Contribution Guide. What's more, we have a guide about how to add new CRDs and Controllers, see How to add new CRD and Controller in SWCK.

License

Apache 2.0 License.