Replace go-bindata with embed lib (#64)
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 972bf51..7cb20b1 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -22,6 +22,10 @@
branches:
- master
+concurrency:
+ group: swck-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
jobs:
check:
name: Check
diff --git a/docs/operator.md b/docs/operator.md
index 2ae7413..c9ba27b 100644
--- a/docs/operator.md
+++ b/docs/operator.md
@@ -59,7 +59,6 @@
If you want to custom the manifests templates to generate dedicated Kubernetes resources,
please edit YAMLs in `pkg/operator/manifests`.
-After saving your changes, issue `make update-templates` to transfer them to binary assets.
The last step is to rebuild `operator` by `make -C operator docker-build`.
@@ -110,4 +109,4 @@
- [Fetch metrics from the Istio control plane(istiod)](./examples/istio-controlplane.md)
- [Inject the java agent to pods](./examples/java-agent-injector-usage.md)
- [Deploy a storage](./examples/storage.md)
-- [Deploy a Satellite](./examples/satellite.md)
\ No newline at end of file
+- [Deploy a Satellite](./examples/satellite.md)
diff --git a/hack/run_update_templates.sh b/hack/run_update_templates.sh
deleted file mode 100755
index fd94cd0..0000000
--- a/hack/run_update_templates.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -ue
-
-
-OUT_DIR=$(mktemp -d -t swck-templates.XXXXXXXXXX) || { echo "Failed to create temp file"; exit 1; }
-
-SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-GOBINDATA="${SCRIPTPATH}"/../bin/go-bindata
-
-ROOTDIR="${SCRIPTPATH}/../operator"
-OPERATOR_DIR="${ROOTDIR}"/pkg/operator
-INSTALLER_DIR="${OPERATOR_DIR}"/manifests
-GEN_PATH="${OPERATOR_DIR}"/repo/assets.gen.go
-
-rm -f "${GEN_PATH}"
-mkdir -p "${OUT_DIR}"
-
-for comp in $(ls ${INSTALLER_DIR});
-do
- cp -Rf "${INSTALLER_DIR}"/"${comp}" "${OUT_DIR}"
-done
-
-set +u
-
-cd "${OUT_DIR}"
-set +e
-rm -f *.bak
-set -e
-"${GOBINDATA}" --nocompress --nometadata --pkg repo -o "${GEN_PATH}" ./...
-
-rm -Rf "${OUT_DIR}"
-
-bash ${SCRIPTPATH}/build-header.sh "${OPERATOR_DIR}"/pkg/operator/repo/assets.gen.go
diff --git a/operator/Makefile b/operator/Makefile
index d18fc45..592bac2 100644
--- a/operator/Makefile
+++ b/operator/Makefile
@@ -40,7 +40,7 @@
##@ Development
-generate: generate-deep manifests update-templates ## Generate codes and manifests
+generate: generate-deep manifests ## Generate codes and manifests
$(MAKE) format
.PHONY: manifests
@@ -56,17 +56,6 @@
test: generate format envtest ## Run tests.
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" go test ./... -coverprofile cover.out
-
-GO_BINDATA := $(tool_bin)/go-bindata
-$(GO_BINDATA):
- curl --location --output $(GO_BINDATA) https://github.com/kevinburke/go-bindata/releases/download/v3.21.0/go-bindata-$(OSNAME)-amd64 \
- && chmod +x $(GO_BINDATA)
-
-update-templates: $(GO_BINDATA) ## Update templates
- @echo updating charts
- -$(root_dir)/hack/run_update_templates.sh
- -$(root_dir)/hack/build-header.sh pkg/operator/repo/assets.gen.go
-
##@ Build
.PHONY: build
diff --git a/operator/config/crd/bases/operator.skywalking.apache.org_fetchers.yaml b/operator/config/crd/bases/operator.skywalking.apache.org_fetchers.yaml
index 596e7d5..beebdf9 100644
--- a/operator/config/crd/bases/operator.skywalking.apache.org_fetchers.yaml
+++ b/operator/config/crd/bases/operator.skywalking.apache.org_fetchers.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
diff --git a/operator/config/crd/bases/operator.skywalking.apache.org_javaagents.yaml b/operator/config/crd/bases/operator.skywalking.apache.org_javaagents.yaml
index 8cab91a..848f70b 100644
--- a/operator/config/crd/bases/operator.skywalking.apache.org_javaagents.yaml
+++ b/operator/config/crd/bases/operator.skywalking.apache.org_javaagents.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
diff --git a/operator/config/crd/bases/operator.skywalking.apache.org_oapservers.yaml b/operator/config/crd/bases/operator.skywalking.apache.org_oapservers.yaml
index 4d4670e..a03720f 100644
--- a/operator/config/crd/bases/operator.skywalking.apache.org_oapservers.yaml
+++ b/operator/config/crd/bases/operator.skywalking.apache.org_oapservers.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
diff --git a/operator/config/crd/bases/operator.skywalking.apache.org_satellites.yaml b/operator/config/crd/bases/operator.skywalking.apache.org_satellites.yaml
index a1e6318..1483b6e 100644
--- a/operator/config/crd/bases/operator.skywalking.apache.org_satellites.yaml
+++ b/operator/config/crd/bases/operator.skywalking.apache.org_satellites.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
diff --git a/operator/config/crd/bases/operator.skywalking.apache.org_storages.yaml b/operator/config/crd/bases/operator.skywalking.apache.org_storages.yaml
index a9caa6c..fcf89ab 100644
--- a/operator/config/crd/bases/operator.skywalking.apache.org_storages.yaml
+++ b/operator/config/crd/bases/operator.skywalking.apache.org_storages.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
diff --git a/operator/config/crd/bases/operator.skywalking.apache.org_uis.yaml b/operator/config/crd/bases/operator.skywalking.apache.org_uis.yaml
index ed4a3b8..d9af6db 100644
--- a/operator/config/crd/bases/operator.skywalking.apache.org_uis.yaml
+++ b/operator/config/crd/bases/operator.skywalking.apache.org_uis.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
diff --git a/operator/config/rbac/role.yaml b/operator/config/rbac/role.yaml
index 5b870ff..bb18d8a 100644
--- a/operator/config/rbac/role.yaml
+++ b/operator/config/rbac/role.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
diff --git a/operator/config/webhook/manifests.yaml b/operator/config/webhook/manifests.yaml
index fb8d197..1d301d3 100644
--- a/operator/config/webhook/manifests.yaml
+++ b/operator/config/webhook/manifests.yaml
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
+
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
diff --git a/operator/main.go b/operator/main.go
index c012a6e..4806dad 100644
--- a/operator/main.go
+++ b/operator/main.go
@@ -37,7 +37,7 @@
operatorcontroller "github.com/apache/skywalking-swck/operator/controllers/operator"
operatorcontrollers "github.com/apache/skywalking-swck/operator/controllers/operator"
"github.com/apache/skywalking-swck/operator/pkg/operator/injector"
- "github.com/apache/skywalking-swck/operator/pkg/operator/repo"
+ "github.com/apache/skywalking-swck/operator/pkg/operator/manifests"
//+kubebuilder:scaffold:imports
)
@@ -84,7 +84,7 @@
if err = (&operatorcontroller.OAPServerReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("oapserver"),
+ FileRepo: manifests.NewRepo("oapserver"),
Recorder: mgr.GetEventRecorderFor("oapserver-controller"),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "OAPServer")
@@ -93,7 +93,7 @@
if err = (&operatorcontroller.UIReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("ui"),
+ FileRepo: manifests.NewRepo("ui"),
Recorder: mgr.GetEventRecorderFor("oapserver-controller"),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "UI")
@@ -102,7 +102,7 @@
if err = (&operatorcontroller.FetcherReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("fetcher"),
+ FileRepo: manifests.NewRepo("fetcher"),
Recorder: mgr.GetEventRecorderFor("fetcher-controller"),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "Fetcher")
@@ -111,7 +111,7 @@
if err = (&operatorcontroller.StorageReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("storage"),
+ FileRepo: manifests.NewRepo("storage"),
RestConfig: mgr.GetConfig(),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "Storage")
@@ -120,7 +120,7 @@
if err = (&operatorcontroller.ConfigMapReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("injector"),
+ FileRepo: manifests.NewRepo("injector"),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "ConfigMap")
os.Exit(1)
@@ -128,7 +128,7 @@
if err = (&operatorcontroller.JavaAgentReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("injector"),
+ FileRepo: manifests.NewRepo("injector"),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "JavaAgent")
os.Exit(1)
@@ -137,7 +137,7 @@
if err = (&operatorcontrollers.SatelliteReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
- FileRepo: repo.NewRepo("satellite"),
+ FileRepo: manifests.NewRepo("satellite"),
Recorder: mgr.GetEventRecorderFor("satellite-controller"),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "Satellite")
diff --git a/operator/pkg/operator/injector/annotation.go b/operator/pkg/operator/injector/annotation.go
index 1fe9ffe..4a97760 100644
--- a/operator/pkg/operator/injector/annotation.go
+++ b/operator/pkg/operator/injector/annotation.go
@@ -23,7 +23,7 @@
"github.com/ghodss/yaml"
- "github.com/apache/skywalking-swck/operator/pkg/operator/repo"
+ "github.com/apache/skywalking-swck/operator/pkg/operator/manifests"
)
// Annotation defines configuration that user can overlay, including
@@ -47,12 +47,12 @@
Annotations []Annotation
}
-//AnnotationOverlay is used to set overlaied value
+// AnnotationOverlay is used to set overlaied value
type AnnotationOverlay map[Annotation]string
// NewAnnotations will create a new AnnotationOverlay
func NewAnnotations() (*Annotations, error) {
- fileRepo := repo.NewRepo("injector")
+ fileRepo := manifests.NewRepo("injector")
data, err := fileRepo.ReadFile("injector/templates/annotations.yaml")
if err != nil {
return nil, err
@@ -76,13 +76,13 @@
return anno
}
-//NewAnnotationOverlay will create a new AnnotationOverlay
+// NewAnnotationOverlay will create a new AnnotationOverlay
func NewAnnotationOverlay() *AnnotationOverlay {
a := make(AnnotationOverlay)
return &a
}
-//GetFinalValue will get overlaied value first , then default
+// GetFinalValue will get overlaied value first , then default
func (as *AnnotationOverlay) GetFinalValue(a Annotation) string {
ov := a.DefaultValue
if v, ok := (*as)[a]; ok {
@@ -91,25 +91,25 @@
return ov
}
-//SetOverlay will set overlaied value
+// SetOverlay will set overlaied value
func (as *AnnotationOverlay) SetOverlay(AnnotationOverlay *map[string]string, a Annotation) error {
if v, ok := (*AnnotationOverlay)[a.Name]; ok {
- //if annotation has validate func then validate
+ // if annotation has validate func then validate
f := FindValidateFunc(a.ValidateFunc)
if f != nil {
err := f(a.Name, v)
- //validate error
+ // validate error
if err != nil {
return err
}
}
- //if no validate func then set Overlay directly
+ // if no validate func then set Overlay directly
(*as)[a] = v
}
return nil
}
-//GetOverlayValue will get overlaied value, if not then return ""
+// GetOverlayValue will get overlaied value, if not then return ""
func (as *AnnotationOverlay) GetOverlayValue(a Annotation) string {
if v, ok := (*as)[a]; ok {
return v
diff --git a/operator/pkg/operator/repo/repo.go b/operator/pkg/operator/manifests/repo.go
similarity index 67%
rename from operator/pkg/operator/repo/repo.go
rename to operator/pkg/operator/manifests/repo.go
index 9aa0be6..a263b6f 100644
--- a/operator/pkg/operator/repo/repo.go
+++ b/operator/pkg/operator/manifests/repo.go
@@ -15,19 +15,22 @@
// specific language governing permissions and limitations
// under the License.
-package repo
+package manifests
import (
+ "embed"
"fmt"
"os"
"path/filepath"
- "time"
"github.com/apache/skywalking-swck/operator/pkg/kubernetes"
)
var _ kubernetes.Repo = &AssetsRepo{}
+//go:embed fetcher injector oapserver satellite storage ui
+var manifests embed.FS
+
// AssetsRepo provides templates through assets
type AssetsRepo struct {
Root string
@@ -39,16 +42,18 @@
// ReadFile reads the content of compiled in files at path and returns a buffer with the data.
func (a *AssetsRepo) ReadFile(path string) ([]byte, error) {
- return Asset(path)
+ return manifests.ReadFile(path)
}
func (a *AssetsRepo) GetFilesRecursive(path string) ([]string, error) {
- ap := fmt.Sprintf("%s/%s", a.Root, path)
- rootFI, err := Stat(ap)
+ absolutePath := fmt.Sprintf("%s/%s", a.Root, path)
+
+ rootFI, err := Stat(absolutePath)
if err != nil {
return nil, err
}
- return getFilesRecursive(filepath.Dir(ap), rootFI)
+
+ return getFilesRecursive(filepath.Dir(absolutePath), rootFI)
}
func getFilesRecursive(prefix string, root os.FileInfo) ([]string, error) {
@@ -56,15 +61,15 @@
return nil, fmt.Errorf("not a dir: %s", root.Name())
}
prefix = filepath.Join(prefix, root.Name())
- fs, _ := AssetDir(prefix)
+ fs, _ := manifests.ReadDir(prefix)
out := make([]string, 0)
for _, f := range fs {
- info, err := Stat(filepath.Join(prefix, f))
+ info, err := Stat(filepath.Join(prefix, f.Name()))
if err != nil {
return nil, err
}
- if !info.IsDir() {
- out = append(out, filepath.Join(prefix, filepath.Base(info.Name())))
+ if !f.IsDir() {
+ out = append(out, filepath.Join(prefix, f.Name()))
continue
}
nfs, err := getFilesRecursive(prefix, info)
@@ -78,40 +83,10 @@
// Stat returns a FileInfo object for the given path.
func Stat(path string) (os.FileInfo, error) {
- info, err := AssetInfo(path)
+ f, err := manifests.Open(path)
if err != nil {
- // try it as a directory instead
- _, err = AssetDir(path)
- if err == nil {
- info = &dirInfo{name: filepath.Base(path)}
- }
- } else {
- fi := info.(bindataFileInfo)
- fi.name = filepath.Base(fi.name)
+ return nil, err
}
- return info, err
-}
-
-type dirInfo struct {
- name string
-}
-
-func (di dirInfo) Name() string {
- return di.name
-}
-func (di dirInfo) Size() int64 {
- return 0
-}
-func (di dirInfo) Mode() os.FileMode {
- return os.FileMode(0)
-}
-func (di dirInfo) ModTime() time.Time {
- return time.Unix(0, 0)
-}
-func (di dirInfo) IsDir() bool {
- return true
-}
-func (di dirInfo) Sys() interface{} {
- return nil
+ return f.Stat()
}
diff --git a/operator/pkg/operator/manifests/repo_test.go b/operator/pkg/operator/manifests/repo_test.go
new file mode 100644
index 0000000..e0fb510
--- /dev/null
+++ b/operator/pkg/operator/manifests/repo_test.go
@@ -0,0 +1,147 @@
+// Licensed to Apache Software Foundation (ASF) under one or more contributor
+// license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright
+// ownership. Apache Software Foundation (ASF) licenses this file to you under
+// the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package manifests
+
+import (
+ "testing"
+)
+
+func TestStat(t *testing.T) {
+ tests := []struct {
+ name string
+ path string
+ wantName string
+ wantIsDir bool
+ wantErr bool
+ }{
+ {
+ name: "empty path",
+ path: "",
+ wantErr: true,
+ },
+ {
+ name: "current directory",
+ path: ".",
+ wantName: ".",
+ wantIsDir: true,
+ wantErr: false,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ got, err := Stat(tt.path)
+ if (err != nil) != tt.wantErr {
+ t.Errorf("Stat() error = %v, wantErr %v", err, tt.wantErr)
+ return
+ }
+ if err == nil {
+ if got.Name() != tt.wantName {
+ t.Errorf("Stat() got.Name() = %v, want %v", got, tt.wantName)
+ }
+ if got.IsDir() != tt.wantIsDir {
+ t.Errorf("Stat() got.IsDir() = %v, want %v", got, tt.wantIsDir)
+ }
+ }
+ })
+ }
+}
+
+func TestAssetsRepo_ReadFile(t *testing.T) {
+ tests := []struct {
+ name string
+ path string
+ wantErr bool
+ }{
+ {
+ name: "read a template file",
+ path: "oapserver/templates/deployment.yaml",
+ wantErr: false,
+ },
+ {
+ name: "read a non-existent file",
+ path: "non-existent/foo.yaml",
+ wantErr: true,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ a := &AssetsRepo{
+ Root: "",
+ }
+ _, err := a.ReadFile(tt.path)
+ if (err != nil) != tt.wantErr {
+ t.Errorf("ReadFile() error = %v, wantErr %v", err, tt.wantErr)
+ return
+ }
+ })
+ }
+}
+
+func TestAssetsRepo_GetFilesRecursive(t *testing.T) {
+ tests := []struct {
+ name string
+ root string
+ path string
+ wantFiles bool // Since filenames may be changed, only check if the number of files is greater than 0.
+ wantErr bool
+ }{
+ {
+ name: "get oap template files",
+ root: "oapserver",
+ path: "templates",
+ wantFiles: true,
+ wantErr: false,
+ },
+ {
+ name: "get ui template files",
+ root: "ui",
+ path: "templates",
+ wantFiles: true,
+ wantErr: false,
+ },
+ {
+ name: "get files from ui directory without path",
+ root: "ui",
+ path: "",
+ wantFiles: false,
+ wantErr: true,
+ },
+ {
+ name: "get files in a non-existent directory",
+ root: "non-existent",
+ path: "templates",
+ wantFiles: false,
+ wantErr: true,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ a := &AssetsRepo{
+ Root: tt.root,
+ }
+ got, err := a.GetFilesRecursive(tt.path)
+ if (err != nil) != tt.wantErr {
+ t.Errorf("GetFilesRecursive() error = %v, wantErr %v", err, tt.wantErr)
+ return
+ }
+ if tt.wantFiles && len(got) <= 0 {
+ t.Errorf("GetFilesRecursive() should return more than one filenames")
+ }
+ })
+ }
+}
diff --git a/operator/pkg/operator/repo/assets.gen.go b/operator/pkg/operator/repo/assets.gen.go
deleted file mode 100644
index e8da2fb..0000000
--- a/operator/pkg/operator/repo/assets.gen.go
+++ /dev/null
@@ -1,2193 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-// Code generated by go-bindata. DO NOT EDIT.
-// sources:
-// fetcher/templates/cluster_role.yaml (1.218kB)
-// fetcher/templates/cluster_role_binding.yaml (1.205kB)
-// fetcher/templates/configmap.yaml (3.082kB)
-// fetcher/templates/deployment.yaml (2.084kB)
-// fetcher/templates/service_account.yaml (1.088kB)
-// injector/templates/annotations.yaml (3.689kB)
-// injector/templates/configmap.yaml (1.2kB)
-// injector/templates/javaagent.yaml (1.462kB)
-// oapserver/templates/cluster_role.yaml (1.241kB)
-// oapserver/templates/cluster_role_binding.yaml (1.207kB)
-// oapserver/templates/deployment.yaml (3.937kB)
-// oapserver/templates/ingress.yaml (1.672kB)
-// oapserver/templates/service.yaml (1.782kB)
-// oapserver/templates/service_account.yaml (1.09kB)
-// satellite/templates/cluster_role.yaml (1.104kB)
-// satellite/templates/cluster_role_binding.yaml (1.213kB)
-// satellite/templates/deployment.yaml (3.089kB)
-// satellite/templates/service.yaml (1.78kB)
-// satellite/templates/service_account.yaml (1.101kB)
-// storage/elasticsearch/templates/configmap.yaml (1.822kB)
-// storage/elasticsearch/templates/service.yaml (1.322kB)
-// storage/elasticsearch/templates/service_account.yaml (1.095kB)
-// storage/elasticsearch/templates/statefulset.yaml (6.624kB)
-// ui/templates/deployment.yaml (2.604kB)
-// ui/templates/ingress.yaml (1.716kB)
-// ui/templates/service.yaml (1.681kB)
-
-package repo
-
-import (
- "crypto/sha256"
- "fmt"
- "io/ioutil"
- "os"
- "path/filepath"
- "strings"
- "time"
-)
-
-type asset struct {
- bytes []byte
- info os.FileInfo
- digest [sha256.Size]byte
-}
-
-type bindataFileInfo struct {
- name string
- size int64
- mode os.FileMode
- modTime time.Time
-}
-
-func (fi bindataFileInfo) Name() string {
- return fi.name
-}
-func (fi bindataFileInfo) Size() int64 {
- return fi.size
-}
-func (fi bindataFileInfo) Mode() os.FileMode {
- return fi.mode
-}
-func (fi bindataFileInfo) ModTime() time.Time {
- return fi.modTime
-}
-func (fi bindataFileInfo) IsDir() bool {
- return false
-}
-func (fi bindataFileInfo) Sys() interface{} {
- return nil
-}
-
-var _fetcherTemplatesCluster_roleYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: swck:fetcher
- labels:
- operator.skywalking.apache.org/application: fetcher
- operator.skywalking.apache.org/component: rbac
-rules:
- - apiGroups: [""]
- resources: ["nodes", "nodes/proxy", "endpoints", "services", "pods"]
- verbs: ["get", "watch", "list"]
- - apiGroups: [""]
- resources: ["configmaps"]
- verbs: ["get"]
-`)
-
-func fetcherTemplatesCluster_roleYamlBytes() ([]byte, error) {
- return _fetcherTemplatesCluster_roleYaml, nil
-}
-
-func fetcherTemplatesCluster_roleYaml() (*asset, error) {
- bytes, err := fetcherTemplatesCluster_roleYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "fetcher/templates/cluster_role.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa8, 0xe2, 0x96, 0xd7, 0x97, 0x52, 0x31, 0x75, 0x66, 0x9b, 0x3, 0x64, 0xd6, 0x68, 0x4f, 0x7, 0xc9, 0x9a, 0xe, 0x86, 0x6c, 0x15, 0x42, 0x64, 0x53, 0x34, 0x3e, 0xe1, 0xdc, 0x62, 0x5f, 0x3e}}
- return a, nil
-}
-
-var _fetcherTemplatesCluster_role_bindingYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: swck:fetcher
- labels:
- operator.skywalking.apache.org/application: fetcher
- operator.skywalking.apache.org/component: rbac
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: swck:fetcher
-subjects:
- - kind: ServiceAccount
- name: {{ .Name }}-fetcher
- namespace: {{ .Namespace }}
-`)
-
-func fetcherTemplatesCluster_role_bindingYamlBytes() ([]byte, error) {
- return _fetcherTemplatesCluster_role_bindingYaml, nil
-}
-
-func fetcherTemplatesCluster_role_bindingYaml() (*asset, error) {
- bytes, err := fetcherTemplatesCluster_role_bindingYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "fetcher/templates/cluster_role_binding.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x94, 0xd1, 0x52, 0x1b, 0x44, 0x28, 0xb4, 0x81, 0x6e, 0xdc, 0x93, 0xc8, 0x8, 0xa1, 0x7e, 0x63, 0x23, 0x78, 0xed, 0x66, 0x14, 0x33, 0xc4, 0x21, 0xea, 0x5e, 0x94, 0x3a, 0xed, 0x4a, 0x38, 0x81}}
- return a, nil
-}
-
-var _fetcherTemplatesConfigmapYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-{{ $types := .Spec.GetType }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: {{ .Name }}-fetcher
- namespace: {{ .Namespace }}
- labels:
- app: fetcher
- operator.skywalking.apache.org/fetcher-name: {{ .Name }}
- operator.skywalking.apache.org/application: fetcher
- operator.skywalking.apache.org/component: configmap
-data:
- collector.yaml: |-
- service:
- extensions: [zpages, health_check]
- pipelines:
- metrics:
- receivers: [prometheus]
- exporters: [logging, opencensus, prometheus]
- extensions:
- zpages:
- endpoint: "localhost:56888"
- health_check: {}
- exporters:
- logging:
- prometheus:
- endpoint: "0.0.0.0:9090"
- opencensus:
- endpoint: {{ .Spec.OAPServerAddress | quote }}
- insecure: true
- receivers:
- {{- if has "prometheus" $types }}
- prometheus:
- config:
- global:
- scrape_interval: 15s
- scrape_timeout: 10s
- scrape_configs:
- - job_name: kubernetes-pods
- kubernetes_sd_configs:
- - role: pod
- relabel_configs:
- - source_labels: []
- target_label: cluster
- replacement: {{ .Spec.ClusterName | quote }}
- - action: keep
- regex: true
- source_labels:
- - __meta_kubernetes_pod_annotation_prometheus_io_scrape
- - action: replace
- regex: (.+)
- source_labels:
- - __meta_kubernetes_pod_annotation_prometheus_io_path
- target_label: __metrics_path__
- - action: replace
- regex: ([^:]+)(?::\d+)?;(\d+)
- replacement: $$1:$$2
- source_labels:
- - __address__
- - __meta_kubernetes_pod_annotation_prometheus_io_port
- target_label: __address__
- - action: labelmap
- regex: __meta_kubernetes_pod_label_(.+)
- - action: replace
- source_labels:
- - __meta_kubernetes_namespace
- target_label: kubernetes_namespace
- - action: replace
- source_labels:
- - __meta_kubernetes_pod_name
- target_label: kubernetes_pod_name
- {{- end }}`)
-
-func fetcherTemplatesConfigmapYamlBytes() ([]byte, error) {
- return _fetcherTemplatesConfigmapYaml, nil
-}
-
-func fetcherTemplatesConfigmapYaml() (*asset, error) {
- bytes, err := fetcherTemplatesConfigmapYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "fetcher/templates/configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x78, 0x5c, 0x20, 0x2e, 0x4a, 0xd1, 0xc, 0xe0, 0xc3, 0x13, 0xec, 0x8e, 0x70, 0x6d, 0x50, 0x62, 0x8f, 0x8f, 0x1, 0x3c, 0xc3, 0xcc, 0x91, 0xf2, 0x40, 0xf9, 0x1, 0x21, 0x10, 0xae, 0x76, 0x85}}
- return a, nil
-}
-
-var _fetcherTemplatesDeploymentYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ .Name }}-fetcher
- namespace: {{ .Namespace }}
- labels:
- app: fetcher
- operator.skywalking.apache.org/fetcher-name: {{ .Name }}
- operator.skywalking.apache.org/application: fetcher
- operator.skywalking.apache.org/component: deployment
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: fetcher
- operator.skywalking.apache.org/fetcher-name: {{ .Name }}
- template:
- metadata:
- labels:
- app: fetcher
- operator.skywalking.apache.org/fetcher-name: {{ .Name }}
- operator.skywalking.apache.org/application: fetcher
- operator.skywalking.apache.org/component: pod
- spec:
- serviceAccountName: {{ .Name }}-fetcher
- containers:
- - args:
- - --log-level=DEBUG
- - --config=/conf/collector.yaml
- image: otel/opentelemetry-collector:0.18.0
- imagePullPolicy: IfNotPresent
- name: otc-container
- volumeMounts:
- - mountPath: /conf
- name: otc-internal
- volumes:
- - configMap:
- defaultMode: 420
- items:
- - key: collector.yaml
- path: collector.yaml
- name: {{ .Name }}-fetcher
- name: otc-internal
-`)
-
-func fetcherTemplatesDeploymentYamlBytes() ([]byte, error) {
- return _fetcherTemplatesDeploymentYaml, nil
-}
-
-func fetcherTemplatesDeploymentYaml() (*asset, error) {
- bytes, err := fetcherTemplatesDeploymentYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "fetcher/templates/deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5d, 0xe2, 0x26, 0x9b, 0x90, 0xa9, 0x58, 0x5b, 0xce, 0xda, 0x61, 0x85, 0x4c, 0x9a, 0xfc, 0x29, 0xab, 0x6f, 0xd6, 0x48, 0x92, 0x24, 0xa5, 0x5a, 0xc6, 0xf6, 0xe, 0x54, 0xe5, 0xaf, 0xca, 0x3a}}
- return a, nil
-}
-
-var _fetcherTemplatesService_accountYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: {{ .Name }}-fetcher
- namespace: {{ .Namespace }}
- labels:
- operator.skywalking.apache.org/fetcher-name: {{ .Name }}
- operator.skywalking.apache.org/application: fetcher
- operator.skywalking.apache.org/component: rbac
-`)
-
-func fetcherTemplatesService_accountYamlBytes() ([]byte, error) {
- return _fetcherTemplatesService_accountYaml, nil
-}
-
-func fetcherTemplatesService_accountYaml() (*asset, error) {
- bytes, err := fetcherTemplatesService_accountYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "fetcher/templates/service_account.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb, 0x75, 0x7a, 0xa, 0x7f, 0xf7, 0x92, 0x19, 0x6b, 0x9d, 0x83, 0x8f, 0xf3, 0x4, 0x78, 0xe, 0x5a, 0x50, 0xab, 0x85, 0xd7, 0xc8, 0x78, 0xc3, 0x68, 0x53, 0xd3, 0xc6, 0x66, 0x93, 0xf3, 0x5c}}
- return a, nil
-}
-
-var _injectorTemplatesAnnotationsYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# name means the reference to configuration used in pod's annotations.
-# defaultValue is the default value in agent.config
-# vaildateFunc means use which function to validate the value
-# Notice , the vaildateFunc must exist in validate.go ,
-# if don't have the vaildateFunc , please set nil
-# envName is the environment variable in agent.config
-
-annotations:
- # Next is the annotation of the sidecar configuration
- - name: sidecar.skywalking.apache.org/initcontainer.Name
- defaultValue: inject-skywalking-agent
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/initcontainer.Image
- defaultValue: apache/skywalking-java-agent:8.8.0-java8
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/initcontainer.Command
- defaultValue: sh
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/initcontainer.args.Option
- defaultValue: -c
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/initcontainer.args.Command
- defaultValue: "mkdir -p /sky/agent && cp -r /skywalking/agent/* /sky/agent"
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/initcontainer.resources.limits
- defaultValue: nil
- validateFunc: ValidateResourceRequirements
- envName: nil
-
- - name: sidecar.skywalking.apache.org/initcontainer.resources.requests
- defaultValue: nil
- validateFunc: ValidateResourceRequirements
- envName: nil
-
- - name: sidecar.skywalking.apache.org/sidecarVolume.Name
- defaultValue: sky-agent
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/sidecarVolumeMount.MountPath
- defaultValue: /sky/agent
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/configmapVolume.ConfigMap.Name
- defaultValue: skywalking-swck-java-agent-configmap
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/configmapVolume.Name
- defaultValue: java-agent-configmap-volume
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/configmapVolumeMount.MountPath
- defaultValue: /sky/agent/config
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/env.Name
- defaultValue: JAVA_TOOL_OPTIONS
- validateFunc: nil
- envName: nil
-
- - name: sidecar.skywalking.apache.org/env.Value
- defaultValue: -javaagent:/sky/agent/skywalking-agent.jar
- validateFunc: nil
- envName: nil
-
- # Next is the annotation of the java agent configuration
- - name: agent.skywalking.apache.org/agent.service_name
- defaultValue: Your_ApplicationName
- validateFunc: ValidateServiceName
- envName: SW_AGENT_NAME
-
- - name: agent.skywalking.apache.org/collector.backend_service
- defaultValue: 127.0.0.1:11800
- validateFunc: ValidateBackendServices
- envName: SW_AGENT_COLLECTOR_BACKEND_SERVICES`)
-
-func injectorTemplatesAnnotationsYamlBytes() ([]byte, error) {
- return _injectorTemplatesAnnotationsYaml, nil
-}
-
-func injectorTemplatesAnnotationsYaml() (*asset, error) {
- bytes, err := injectorTemplatesAnnotationsYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "injector/templates/annotations.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x59, 0xbb, 0xd0, 0x87, 0x78, 0x4, 0xac, 0x18, 0x3a, 0xf7, 0xff, 0xcc, 0x99, 0x72, 0x42, 0xd, 0xa4, 0xcb, 0xfa, 0x78, 0x6a, 0x39, 0xbd, 0xb8, 0xfd, 0x8b, 0x25, 0x26, 0x8f, 0xa, 0x9e, 0x1f}}
- return a, nil
-}
-
-var _injectorTemplatesConfigmapYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: skywalking-swck-java-agent-configmap
- namespace: skywalking-swck-system
-data:
- agent.config: |
- {{- $anno := getAgentAnnotations }}
- {{- range $anno -}}
- {{- if ne .DefaultValue "nil" }}
- {{parse .Name}}=${ {{- .EnvName}}:{{.DefaultValue -}} }
- {{- else}}
- {{parse .Name}}=${ {{- .EnvName}}:}
- {{- end -}}
- {{- end -}}`)
-
-func injectorTemplatesConfigmapYamlBytes() ([]byte, error) {
- return _injectorTemplatesConfigmapYaml, nil
-}
-
-func injectorTemplatesConfigmapYaml() (*asset, error) {
- bytes, err := injectorTemplatesConfigmapYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "injector/templates/configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc6, 0xee, 0xc8, 0x3f, 0x93, 0x98, 0x46, 0x72, 0x7e, 0x19, 0xa, 0x17, 0xc3, 0x8a, 0x76, 0x3f, 0xf5, 0x5f, 0x15, 0x53, 0x27, 0x92, 0xdc, 0xcc, 0x6c, 0x99, 0x70, 0x38, 0x7c, 0x75, 0x4e, 0x25}}
- return a, nil
-}
-
-var _injectorTemplatesJavaagentYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-{{- $configuration := config }}
-apiVersion: operator.skywalking.apache.org/v1alpha1
-kind: JavaAgent
-metadata:
- name: {{SelectorName}}-javaagent
- namespace: {{Namespace}}
- ownerReferences:
- - apiVersion: {{ownerReference.APIVersion}}
- blockOwnerDeletion: {{ownerReference.BlockOwnerDeletion}}
- controller: {{ownerReference.Controller}}
- kind: {{ownerReference.Kind}}
- name: {{ownerReference.Name}}
- uid: {{ownerReference.UID}}
-spec:
- podSelector: {{PodSelector}}
- serviceName: {{ServiceName}}
- backendService: {{BackendService}}
- agentConfiguration:
- {{ range $key, $value := $configuration }}
- {{$key}}: {{$value}}
- {{- end -}}`)
-
-func injectorTemplatesJavaagentYamlBytes() ([]byte, error) {
- return _injectorTemplatesJavaagentYaml, nil
-}
-
-func injectorTemplatesJavaagentYaml() (*asset, error) {
- bytes, err := injectorTemplatesJavaagentYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "injector/templates/javaagent.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x97, 0x6d, 0x88, 0xd3, 0x8d, 0xaa, 0x80, 0x98, 0xd0, 0x29, 0x76, 0x5e, 0x57, 0x90, 0xdf, 0x8a, 0x29, 0xb5, 0x7d, 0x71, 0x5e, 0xc2, 0xb4, 0xcb, 0xfa, 0x46, 0x29, 0x3c, 0x71, 0xd2, 0x74, 0x32}}
- return a, nil
-}
-
-var _oapserverTemplatesCluster_roleYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: swck:oapserver
- labels:
- operator.skywalking.apache.org/application: oapserver
- operator.skywalking.apache.org/component: rbac
-rules:
- - apiGroups: [""]
- resources: ["pods", "endpoints", "services"]
- verbs: ["get", "watch", "list"]
- - apiGroups: ["extensions"]
- resources: ["deployments", "replicasets"]
- verbs: ["get", "watch", "list"]
-`)
-
-func oapserverTemplatesCluster_roleYamlBytes() ([]byte, error) {
- return _oapserverTemplatesCluster_roleYaml, nil
-}
-
-func oapserverTemplatesCluster_roleYaml() (*asset, error) {
- bytes, err := oapserverTemplatesCluster_roleYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "oapserver/templates/cluster_role.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb5, 0xde, 0x59, 0x47, 0x2c, 0x69, 0xe9, 0xcd, 0x7e, 0xa7, 0x4, 0xf7, 0xf2, 0xa0, 0x1a, 0x1b, 0xb6, 0xa3, 0x42, 0xb3, 0x20, 0x49, 0x9b, 0x2f, 0x81, 0x87, 0xa0, 0x95, 0x73, 0x49, 0x6a, 0xdb}}
- return a, nil
-}
-
-var _oapserverTemplatesCluster_role_bindingYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: swck:oapserver
- labels:
- operator.skywalking.apache.org/application: oapserver
- operator.skywalking.apache.org/component: rbac
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: swck:oapserver
-subjects:
- - kind: ServiceAccount
- name: {{ .Name }}-oap
- namespace: {{ .Namespace }}
-`)
-
-func oapserverTemplatesCluster_role_bindingYamlBytes() ([]byte, error) {
- return _oapserverTemplatesCluster_role_bindingYaml, nil
-}
-
-func oapserverTemplatesCluster_role_bindingYaml() (*asset, error) {
- bytes, err := oapserverTemplatesCluster_role_bindingYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "oapserver/templates/cluster_role_binding.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf8, 0x15, 0xc5, 0xe0, 0xe7, 0x4e, 0xeb, 0xed, 0x61, 0xda, 0xad, 0x6c, 0x43, 0xf, 0x80, 0x5, 0x4c, 0x47, 0xbc, 0x20, 0xe7, 0xc6, 0xdf, 0x63, 0xcf, 0x9b, 0x54, 0x56, 0x1f, 0x4, 0xbf, 0x1c}}
- return a, nil
-}
-
-var _oapserverTemplatesDeploymentYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ .Name }}-oap
- namespace: {{ .Namespace }}
- labels:
- app: oap
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: oapserver
- operator.skywalking.apache.org/component: deployment
-
-spec:
- replicas: {{ .Spec.Instances }}
- minReadySeconds: 5
- selector:
- matchLabels:
- app: oap
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
- template:
- metadata:
- labels:
- app: oap
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: oapserver
- operator.skywalking.apache.org/component: pod
- spec:
- serviceAccountName: {{ .Name }}-oap
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- topologyKey: kubernetes.io/hostname
- labelSelector:
- matchLabels:
- app: oap
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
- containers:
- - name: oap
- image: {{ .Spec.Image }}
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 11800
- name: grpc
- - containerPort: 12800
- name: rest
- - containerPort: 1234
- name: http-monitoring
- livenessProbe:
- initialDelaySeconds: 10
- timeoutSeconds: 10
- periodSeconds: 30
- failureThreshold: 10
- successThreshold: 1
- exec:
- command:
- - /skywalking/bin/swctl
- - ch
- readinessProbe:
- initialDelaySeconds: 10
- timeoutSeconds: 10
- periodSeconds: 30
- failureThreshold: 10
- successThreshold: 1
- exec:
- command:
- - /skywalking/bin/swctl
- - ch
- {{if .Spec.StorageConfig.Storage.Spec.Security.TLS}}
- volumeMounts:
- - name: cert
- mountPath: /skywalking/p12
- {{end}}
- env:
- - name: JAVA_OPTS
- value: -Xmx2048M
- - name: SW_CLUSTER
- value: kubernetes
- - name: SW_CLUSTER_K8S_NAMESPACE
- value: "{{ .Namespace }}"
- - name: SW_CLUSTER_K8S_LABEL
- value: "app=oap,operator.skywalking.apache.org/oap-server-name={{ .Name }}"
- - name: SKYWALKING_COLLECTOR_UID
- valueFrom:
- fieldRef:
- fieldPath: metadata.uid
- - name: SW_TELEMETRY
- value: prometheus
- - name: SW_HEALTH_CHECKER
- value: default
- {{range .Spec.Config}}
- - name: {{ .Name }}
- value: {{ .Value }}
- {{end}}
- {{if .Spec.StorageConfig.Storage.Spec.Security.TLS}}
- volumes:
- - name: cert
- secret:
- secretName: "skywalking-storage"
- {{end}}
-`)
-
-func oapserverTemplatesDeploymentYamlBytes() ([]byte, error) {
- return _oapserverTemplatesDeploymentYaml, nil
-}
-
-func oapserverTemplatesDeploymentYaml() (*asset, error) {
- bytes, err := oapserverTemplatesDeploymentYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "oapserver/templates/deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcf, 0x8a, 0xdc, 0x5b, 0xc4, 0x54, 0x0, 0xa7, 0xe0, 0x7d, 0xb1, 0x27, 0x71, 0x22, 0xf5, 0xfd, 0x8a, 0x64, 0x6b, 0xa, 0x70, 0x4b, 0x37, 0x3d, 0x9a, 0x14, 0xa8, 0x3d, 0x29, 0x59, 0xe2, 0xc2}}
- return a, nil
-}
-
-var _oapserverTemplatesIngressYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-{{- $ingress := .Spec.Service.Ingress }}
-{{ if $ingress.Host }}
-apiVersion: networking.k8s.io/v1beta1
-kind: Ingress
-metadata:
- name: {{ .Name }}-ui
- namespace: {{ .Namespace }}
- labels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- operator.skywalking.apache.org/application: ui
- operator.skywalking.apache.org/component: deployment
- annotations:
- {{- range $key, $value := $ingress.Annotations }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
-spec:
- rules:
- - host: {{ $ingress.Host }}
- http:
- paths:
- - path: /*
- backend:
- serviceName: {{ .Name }}-oap
- servicePort: 12800
- {{- if $ingress.IngressClassName }}
- ingressClassName: {{ $ingress.IngressClassName }}
- {{end}}
- {{- if $ingress.TLS }}
- tls:
-{{ toYAML $ingress.TLS | indent 4 }}
- {{end}}
-{{end}}
-`)
-
-func oapserverTemplatesIngressYamlBytes() ([]byte, error) {
- return _oapserverTemplatesIngressYaml, nil
-}
-
-func oapserverTemplatesIngressYaml() (*asset, error) {
- bytes, err := oapserverTemplatesIngressYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "oapserver/templates/ingress.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9a, 0x2, 0xeb, 0x33, 0x6f, 0x15, 0x7c, 0x82, 0x23, 0x94, 0xe1, 0x20, 0x4f, 0x3, 0xd7, 0x23, 0xc6, 0xd0, 0x3a, 0xc6, 0x44, 0x3a, 0xc0, 0x8f, 0xeb, 0x47, 0x57, 0x9a, 0x2d, 0x49, 0xea, 0x5a}}
- return a, nil
-}
-
-var _oapserverTemplatesServiceYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-{{- $svc := .Spec.Service.Template }}
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ .Name }}-oap
- namespace: {{ .Namespace }}
- labels:
- app: oap
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: oapserver
- operator.skywalking.apache.org/component: service
-spec:
- type: {{ $svc.Type }}
- ports:
- - port: 12800
- name: rest
- - port: 11800
- name: grpc
- - port: 1234
- name: http-monitoring
- {{- if $svc.ExternalIPs }}
- externalIPs:
- {{- range $value := $svc.ExternalIPs }}
- - {{ $value | quote }}
- {{- end }}
- {{- end }}
- {{- if $svc.LoadBalancerIP }}
- loadBalancerIP: {{ $svc.LoadBalancerIP }}
- {{- end }}
- {{- if $svc.LoadBalancerSourceRanges }}
- loadBalancerSourceRanges:
- {{- range $value := $svc.LoadBalancerSourceRanges }}
- - {{ $value | quote }}
- {{- end }}
- {{- end }}
- selector:
- app: oap
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
-
-`)
-
-func oapserverTemplatesServiceYamlBytes() ([]byte, error) {
- return _oapserverTemplatesServiceYaml, nil
-}
-
-func oapserverTemplatesServiceYaml() (*asset, error) {
- bytes, err := oapserverTemplatesServiceYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "oapserver/templates/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3a, 0x76, 0x46, 0xaa, 0x13, 0x1b, 0x93, 0x29, 0x97, 0xcd, 0xa3, 0x61, 0xf2, 0x8f, 0x2d, 0xf, 0xcd, 0x88, 0xf6, 0xd, 0x32, 0xae, 0x16, 0x3e, 0x55, 0x33, 0x43, 0xe9, 0x16, 0xd0, 0xe2, 0xe0}}
- return a, nil
-}
-
-var _oapserverTemplatesService_accountYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: {{ .Name }}-oap
- namespace: {{ .Namespace }}
- labels:
- operator.skywalking.apache.org/oap-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: oapserver
- operator.skywalking.apache.org/component: rbac
-
-`)
-
-func oapserverTemplatesService_accountYamlBytes() ([]byte, error) {
- return _oapserverTemplatesService_accountYaml, nil
-}
-
-func oapserverTemplatesService_accountYaml() (*asset, error) {
- bytes, err := oapserverTemplatesService_accountYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "oapserver/templates/service_account.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x35, 0x3b, 0x36, 0x6, 0xcc, 0x9, 0x84, 0x7d, 0x62, 0x48, 0x31, 0xcf, 0x17, 0xec, 0xd1, 0xdd, 0x83, 0x0, 0x86, 0x6a, 0x50, 0xd5, 0xb6, 0x4a, 0x23, 0xdc, 0xea, 0xd, 0x80, 0x87, 0x2, 0x24}}
- return a, nil
-}
-
-var _satelliteTemplatesCluster_roleYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: swck:satellite
- labels:
- operator.skywalking.apache.org/application: satellite
- operator.skywalking.apache.org/component: rbac
-rules:
- - apiGroups: [""]
- resources: ["pods"]
- verbs: ["get", "watch", "list"]
-`)
-
-func satelliteTemplatesCluster_roleYamlBytes() ([]byte, error) {
- return _satelliteTemplatesCluster_roleYaml, nil
-}
-
-func satelliteTemplatesCluster_roleYaml() (*asset, error) {
- bytes, err := satelliteTemplatesCluster_roleYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "satellite/templates/cluster_role.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4d, 0xac, 0x31, 0xd6, 0xa9, 0x74, 0x27, 0xd4, 0x72, 0xae, 0x44, 0x61, 0x28, 0x6c, 0x78, 0xdc, 0x7e, 0x33, 0x46, 0x89, 0xab, 0x7b, 0x33, 0x14, 0x6, 0x36, 0xc, 0x2, 0x5b, 0xe9, 0x4a, 0x33}}
- return a, nil
-}
-
-var _satelliteTemplatesCluster_role_bindingYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: swck:satellite
- labels:
- operator.skywalking.apache.org/application: satellite
- operator.skywalking.apache.org/component: rbac
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: swck:satellite
-subjects:
- - kind: ServiceAccount
- name: {{ .Name }}-satellite
- namespace: {{ .Namespace }}
-`)
-
-func satelliteTemplatesCluster_role_bindingYamlBytes() ([]byte, error) {
- return _satelliteTemplatesCluster_role_bindingYaml, nil
-}
-
-func satelliteTemplatesCluster_role_bindingYaml() (*asset, error) {
- bytes, err := satelliteTemplatesCluster_role_bindingYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "satellite/templates/cluster_role_binding.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6, 0x26, 0xd9, 0xd1, 0xb, 0x1c, 0xce, 0x45, 0x3c, 0xc6, 0xbe, 0xe7, 0xd2, 0x79, 0x7, 0xdc, 0x3c, 0x8a, 0xd5, 0xb8, 0x50, 0x37, 0x39, 0xd4, 0xc8, 0xc7, 0x7a, 0x4c, 0x54, 0x4d, 0x9f, 0xfe}}
- return a, nil
-}
-
-var _satelliteTemplatesDeploymentYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ .Name }}-satellite
- namespace: {{ .Namespace }}
- labels:
- app: satellite
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: satellite
- operator.skywalking.apache.org/component: deployment
-
-spec:
- replicas: {{ .Spec.Instances }}
- minReadySeconds: 5
- selector:
- matchLabels:
- app: satellite
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
- template:
- metadata:
- labels:
- app: satellite
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: satellite
- operator.skywalking.apache.org/component: pod
- spec:
- serviceAccountName: {{ .Name }}-satellite
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- topologyKey: kubernetes.io/hostname
- labelSelector:
- matchLabels:
- app: satellite
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
- containers:
- - name: satellite
- image: {{ .Spec.Image }}
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 11800
- name: grpc
- - containerPort: 1234
- name: http-monitoring
- readinessProbe:
- tcpSocket:
- port: 11800
- initialDelaySeconds: 15
- periodSeconds: 20
- env:
- - name: SATELLITE_GRPC_CLIENT_FINDER
- value: kubernetes
- - name: SATELLITE_GRPC_CLIENT_KUBERNETES_NAMESPACE
- value: "{{ .Namespace }}"
- - name: SATELLITE_GRPC_CLIENT_KUBERNETES_KIND
- value: pod
- - name: SATELLITE_GRPC_CLIENT_KUBERNETES_SELECTOR_LABEL
- value: "app=oap,operator.skywalking.apache.org/oap-server-name={{ .Spec.OAPServerName }}"
- - name: SATELLITE_GRPC_CLIENT_KUBERNETES_EXTRA_PORT
- value: "11800"
- {{range .Spec.Config}}
- - name: {{ .Name }}
- value: "{{ .Value }}"
- {{end}}
-`)
-
-func satelliteTemplatesDeploymentYamlBytes() ([]byte, error) {
- return _satelliteTemplatesDeploymentYaml, nil
-}
-
-func satelliteTemplatesDeploymentYaml() (*asset, error) {
- bytes, err := satelliteTemplatesDeploymentYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "satellite/templates/deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd4, 0x11, 0x1b, 0x8f, 0x75, 0x86, 0x9c, 0x13, 0xaf, 0x30, 0xea, 0xfa, 0xd3, 0x53, 0x15, 0x3c, 0xc5, 0x36, 0xf0, 0x21, 0x57, 0x4f, 0xb3, 0x47, 0xa1, 0xbc, 0xb3, 0x33, 0xda, 0x12, 0x9c, 0x34}}
- return a, nil
-}
-
-var _satelliteTemplatesServiceYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-{{- $svc := .Spec.Service.Template }}
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ .Name }}-satellite
- namespace: {{ .Namespace }}
- labels:
- app: satellite
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: satellite
- operator.skywalking.apache.org/component: service
-spec:
- type: {{ $svc.Type }}
- ports:
- - port: 11800
- name: grpc
- - port: 1234
- name: http-monitoring
- {{- if $svc.ExternalIPs }}
- externalIPs:
- {{- range $value := $svc.ExternalIPs }}
- - {{ $value | quote }}
- {{- end }}
- {{- end }}
- {{- if $svc.LoadBalancerIP }}
- loadBalancerIP: {{ $svc.LoadBalancerIP }}
- {{- end }}
- {{- if $svc.LoadBalancerSourceRanges }}
- loadBalancerSourceRanges:
- {{- range $value := $svc.LoadBalancerSourceRanges }}
- - {{ $value | quote }}
- {{- end }}
- {{- end }}
- selector:
- app: satellite
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
-`)
-
-func satelliteTemplatesServiceYamlBytes() ([]byte, error) {
- return _satelliteTemplatesServiceYaml, nil
-}
-
-func satelliteTemplatesServiceYaml() (*asset, error) {
- bytes, err := satelliteTemplatesServiceYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "satellite/templates/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe5, 0x52, 0xf7, 0xe, 0x18, 0x89, 0xda, 0x3a, 0x6d, 0x98, 0x3a, 0x3a, 0x15, 0xd8, 0x8b, 0x30, 0x1c, 0xfe, 0x6f, 0x52, 0x4a, 0x2d, 0x96, 0x1d, 0x49, 0x18, 0xb1, 0xf, 0x97, 0xa4, 0xac, 0x28}}
- return a, nil
-}
-
-var _satelliteTemplatesService_accountYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: {{ .Name }}-satellite
- namespace: {{ .Namespace }}
- labels:
- operator.skywalking.apache.org/satellite-server-name: {{ .Name }}
- operator.skywalking.apache.org/application: satellite
- operator.skywalking.apache.org/component: rbac
-`)
-
-func satelliteTemplatesService_accountYamlBytes() ([]byte, error) {
- return _satelliteTemplatesService_accountYaml, nil
-}
-
-func satelliteTemplatesService_accountYaml() (*asset, error) {
- bytes, err := satelliteTemplatesService_accountYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "satellite/templates/service_account.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa8, 0x7c, 0xee, 0xa4, 0xdb, 0xf1, 0x4b, 0x6b, 0x79, 0x1a, 0x30, 0x7f, 0x16, 0xa5, 0xf1, 0x4b, 0x58, 0xae, 0xbf, 0xc1, 0xad, 0xfb, 0xd6, 0xed, 0x48, 0x97, 0xda, 0xb0, 0xed, 0x90, 0xab, 0x7d}}
- return a, nil
-}
-
-var _storageElasticsearchTemplatesConfigmapYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: {{ .Name }}-config
- namespace: {{ .Namespace }}
-data:
- elasticsearch.yml: |
- network.host: 0.0.0.0
- {{ if .Spec.Security.User.SecretName }}
- xpack.security.enabled: true
- xpack.security.transport.ssl.enabled: true
- xpack.security.transport.ssl.verification_mode: certificate
- xpack.security.transport.ssl.keystore.path: storage.p12
- xpack.security.transport.ssl.keystore.password: skywalking
- xpack.security.transport.ssl.truststore.path: storage.p12
- xpack.security.transport.ssl.truststore.password: skywalking
- {{end}}
- {{ if .Spec.Security.TLS }}
- xpack.security.http.ssl.enabled: true
- xpack.security.http.ssl.verification_mode: certificate
- xpack.security.http.ssl.keystore.path: storage.p12
- xpack.security.http.ssl.keystore.password: skywalking
- xpack.security.http.ssl.truststore.path: storage.p12
- xpack.security.http.ssl.truststore.password: skywalking
- {{end}}
-
-
-`)
-
-func storageElasticsearchTemplatesConfigmapYamlBytes() ([]byte, error) {
- return _storageElasticsearchTemplatesConfigmapYaml, nil
-}
-
-func storageElasticsearchTemplatesConfigmapYaml() (*asset, error) {
- bytes, err := storageElasticsearchTemplatesConfigmapYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "storage/elasticsearch/templates/configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x23, 0x88, 0x69, 0x87, 0xef, 0x9a, 0xcc, 0xe6, 0x9b, 0x4e, 0x2b, 0xcc, 0x55, 0x75, 0x78, 0x9d, 0x59, 0x5f, 0x6b, 0xc0, 0x27, 0xa0, 0x8, 0x10, 0xff, 0xb8, 0x38, 0xba, 0xcf, 0xed, 0x1d, 0x9d}}
- return a, nil
-}
-
-var _storageElasticsearchTemplatesServiceYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-kind: Service
-apiVersion: v1
-metadata:
- name: {{ .Spec.ServiceName }}
- namespace: {{ .Namespace }}
- labels:
- app: es
- operator.skywalking.apache.org/es-name: {{ .Name }}
- operator.skywalking.apache.org/application: elasticsearch
- operator.skywalking.apache.org/component: service
-spec:
- clusterIP: None
- selector:
- app: es
- operator.skywalking.apache.org/es-name: {{ .Name }}
- publishNotReadyAddresses: true
- ports:
- - name: http
- port: 9200
- - name: transport
- port: 9300
-
-`)
-
-func storageElasticsearchTemplatesServiceYamlBytes() ([]byte, error) {
- return _storageElasticsearchTemplatesServiceYaml, nil
-}
-
-func storageElasticsearchTemplatesServiceYaml() (*asset, error) {
- bytes, err := storageElasticsearchTemplatesServiceYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "storage/elasticsearch/templates/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0xfc, 0xe1, 0x33, 0x2e, 0xc2, 0x4, 0x23, 0x44, 0x26, 0xe5, 0x85, 0x9d, 0x58, 0xe7, 0xe5, 0x2a, 0xee, 0x7e, 0x6c, 0x39, 0xbf, 0x31, 0x4a, 0x49, 0xb9, 0xf7, 0x6b, 0xa8, 0x38, 0x79, 0x82}}
- return a, nil
-}
-
-var _storageElasticsearchTemplatesService_accountYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: {{ .Name }}-elasticsearch
- namespace: {{ .Namespace }}
- labels:
- operator.skywalking.apache.org/es-name: {{ .Name }}
- operator.skywalking.apache.org/application: elasticsearch
- operator.skywalking.apache.org/component: rbac
-`)
-
-func storageElasticsearchTemplatesService_accountYamlBytes() ([]byte, error) {
- return _storageElasticsearchTemplatesService_accountYaml, nil
-}
-
-func storageElasticsearchTemplatesService_accountYaml() (*asset, error) {
- bytes, err := storageElasticsearchTemplatesService_accountYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "storage/elasticsearch/templates/service_account.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe6, 0xe2, 0x5d, 0x98, 0xe2, 0xbb, 0x1, 0xf0, 0x92, 0x2e, 0x76, 0x6f, 0xc2, 0x7d, 0x95, 0x7, 0xd4, 0x74, 0xa7, 0x40, 0x55, 0x1f, 0x9f, 0xf9, 0x25, 0x92, 0x9f, 0xea, 0x13, 0x49, 0xca, 0x43}}
- return a, nil
-}
-
-var _storageElasticsearchTemplatesStatefulsetYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: {{ .Name }}-elasticsearch
- namespace: {{ .Namespace }}
- labels:
- app: es
- operator.skywalking.apache.org/es-name: {{ .Name }}
- operator.skywalking.apache.org/application: elasticsearch
- operator.skywalking.apache.org/component: statefulset
-spec:
- serviceName: {{ .Spec.ServiceName }}
- replicas: {{ .Spec.Instances }}
- selector:
- matchLabels:
- app: es
- operator.skywalking.apache.org/es-name: {{ .Name }}
- podManagementPolicy: Parallel
- updateStrategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app: es
- operator.skywalking.apache.org/es-name: {{ .Name }}
- operator.skywalking.apache.org/application: elasticsearch
- operator.skywalking.apache.org/component: statefulset
- spec:
- serviceAccountName: {{ .Name }}-elasticsearch
- affinity:
- podAntiAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchExpressions:
- - key: app
- operator: In
- values:
- - "es"
- topologyKey: kubernetes.io/hostname
- initContainers:
- - name: configure-sysctl
- securityContext:
- runAsUser: 0
- privileged: true
- image: "{{ .Spec.Image }}"
- imagePullPolicy: IfNotPresent
- command: [ "sysctl", "-w", "vm.max_map_count=262144" ]
- containers:
- - name: elasticsearch
- image: {{ .Spec.Image }}
- resources:
- limits:
- cpu: {{ .Spec.ResourceCnfig.Limit }}
- requests:
- cpu: {{ .Spec.ResourceCnfig.Requests }}
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 9200
- name: http
- protocol: TCP
- - containerPort: 9300
- name: transport
- protocol: TCP
- volumeMounts:
- - name: config
- mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
- subPath: elasticsearch.yml
- {{ if .Spec.Security.User.SecretName }}
- - name: cert
- mountPath: "/usr/share/elasticsearch/config/storage.p12"
- subPath: storage.p12
- {{end}}
- env:
- - name: cluster.name
- value: "{{ .Name }}-skywalking-es"
- - name: node.name
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: thread_pool.write.queue_size
- value: "1000"
- {{ range .Spec.Config }}
- - name: {{ .Name }}
- value: {{ .Value }}
- {{end}}
- readinessProbe:
- exec:
- command:
- - sh
- - -c
- - |
- #!/usr/bin/env bash -e
- # Exit if ELASTIC_PASSWORD in unset
- if [ -z "${ELASTIC_PASSWORD}" ]; then
- echo "ELASTIC_PASSWORD variable is missing, exiting"
- exit 1
- fi
- # If the node is starting up wait for the cluster to be ready (request params: "wait_for_status=green&timeout=1s" )
- # Once it has started only check that the node itself is responding
- START_FILE=/tmp/.es_start_file
- http () {
- local path="${1}"
- local args="${2}"
- set -- -XGET -s
- if [ "$args" != "" ]; then
- set -- "$@" $args
- fi
- set -- "$@" -u "elastic:${ELASTIC_PASSWORD}"
- curl --output /dev/null -k "$@" "{{ getProtocol .Spec.Security.TLS }}://127.0.0.1:9200${path}"
- }
- if [ -f "${START_FILE}" ]; then
- echo 'Elasticsearch is already running, lets check the node is healthy'
- HTTP_CODE=$(http "/" "-w %{http_code}")
- RC=$?
- if [[ ${RC} -ne 0 ]]; then
- echo "curl --output /dev/null -k -XGET -s -w '%{http_code}' \${BASIC_AUTH} {{ getProtocol .Spec.Security.TLS }}://127.0.0.1:9200/ failed with RC ${RC}"
- exit ${RC}
- fi
- # ready if HTTP code 200
- if [[ ${HTTP_CODE} == "200" ]]; then
- exit 0
- else
- echo "curl --output /dev/null -k -XGET -s -w '%{http_code}' \${BASIC_AUTH} {{ getProtocol .Spec.Security.TLS }}://127.0.0.1:9200/ failed with HTTP code ${HTTP_CODE}"
- exit 1
- fi
- else
- echo 'Waiting for elasticsearch cluster to become ready (request params: "wait_for_status=green&timeout=1s" )'
- if http "/_cluster/health?wait_for_status=green&timeout=1s" "--fail" ; then
- touch ${START_FILE}
- exit 0
- else
- echo 'Cluster is not yet ready (request params: "wait_for_status=green&timeout=1s" )'
- exit 1
- fi
- fi
- failureThreshold: 10
- initialDelaySeconds: 10
- periodSeconds: 12
- successThreshold: 1
- timeoutSeconds: 12
- volumes:
- - name: config
- configMap:
- name: {{ .Name }}-config
- items:
- - key: elasticsearch.yml
- path: elasticsearch.yml
- {{ if .Spec.Security.User.SecretName }}
- - name: cert
- secret:
- secretName: "skywalking-storage"
- {{end}}`)
-
-func storageElasticsearchTemplatesStatefulsetYamlBytes() ([]byte, error) {
- return _storageElasticsearchTemplatesStatefulsetYaml, nil
-}
-
-func storageElasticsearchTemplatesStatefulsetYaml() (*asset, error) {
- bytes, err := storageElasticsearchTemplatesStatefulsetYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "storage/elasticsearch/templates/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7f, 0x54, 0x31, 0xb6, 0xbf, 0xaf, 0xb2, 0x47, 0xea, 0xb2, 0x4f, 0x5, 0x54, 0xd6, 0x55, 0xa2, 0x68, 0x47, 0xb2, 0x78, 0x3a, 0xf3, 0x9, 0xf4, 0x56, 0x12, 0xd4, 0x99, 0xcf, 0x23, 0x5e, 0xe7}}
- return a, nil
-}
-
-var _uiTemplatesDeploymentYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ .Name }}-ui
- namespace: {{ .Namespace }}
- labels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- operator.skywalking.apache.org/application: ui
- operator.skywalking.apache.org/component: deployment
-spec:
- replicas: {{ .Spec.Instances }}
- minReadySeconds: 5
- selector:
- matchLabels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- template:
- metadata:
- labels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- operator.skywalking.apache.org/application: ui
- operator.skywalking.apache.org/component: deployment
- spec:
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- topologyKey: kubernetes.io/hostname
- labelSelector:
- matchLabels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- containers:
- - name: ui
- image: {{ .Spec.Image }}
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 8080
- name: page
- livenessProbe:
- initialDelaySeconds: 10
- timeoutSeconds: 10
- periodSeconds: 30
- failureThreshold: 3
- successThreshold: 1
- httpGet:
- path: /
- port: 8080
- readinessProbe:
- initialDelaySeconds: 10
- timeoutSeconds: 10
- periodSeconds: 30
- failureThreshold: 3
- successThreshold: 1
- httpGet:
- path: /
- port: 8080
- env:
- - name: SW_OAP_ADDRESS
- value: {{ .Spec.OAPServerAddress }}
-`)
-
-func uiTemplatesDeploymentYamlBytes() ([]byte, error) {
- return _uiTemplatesDeploymentYaml, nil
-}
-
-func uiTemplatesDeploymentYaml() (*asset, error) {
- bytes, err := uiTemplatesDeploymentYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "ui/templates/deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x19, 0x7d, 0xe7, 0x88, 0xad, 0x5b, 0x81, 0x96, 0xe0, 0xbd, 0x6c, 0xfe, 0x62, 0x8, 0x9f, 0x7b, 0xca, 0x2, 0x25, 0x75, 0x8c, 0x4, 0xee, 0xd4, 0xb9, 0xbf, 0xee, 0x8f, 0x2d, 0xa8, 0x5d, 0xb9}}
- return a, nil
-}
-
-var _uiTemplatesIngressYaml = []byte(`# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-{{- $ingress := .Spec.Service.Ingress }}
-{{ if $ingress.Host }}
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: {{ .Name }}-ui
- namespace: {{ .Namespace }}
- labels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- operator.skywalking.apache.org/application: ui
- operator.skywalking.apache.org/component: deployment
- annotations:
- {{- range $key, $value := $ingress.Annotations }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
-spec:
- rules:
- - host: {{ $ingress.Host }}
- http:
- paths:
- - backend:
- service:
- name: {{ .Name }}-ui
- port:
- number: 80
- path: /
- pathType: Prefix
- {{- if $ingress.IngressClassName }}
- ingressClassName: {{ $ingress.IngressClassName }}
- {{end}}
- {{- if $ingress.TLS }}
- tls:
-{{ toYAML $ingress.TLS | indent 4 }}
- {{end}}
-{{end}}
-`)
-
-func uiTemplatesIngressYamlBytes() ([]byte, error) {
- return _uiTemplatesIngressYaml, nil
-}
-
-func uiTemplatesIngressYaml() (*asset, error) {
- bytes, err := uiTemplatesIngressYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "ui/templates/ingress.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa7, 0x22, 0xaf, 0xa7, 0x77, 0x36, 0x3a, 0x57, 0x1c, 0x52, 0x67, 0x42, 0xa0, 0x4a, 0xcf, 0xf7, 0xe9, 0x91, 0x75, 0x45, 0xdf, 0xdc, 0xa3, 0x68, 0x5c, 0x79, 0xc0, 0xbe, 0xf8, 0xb1, 0x61, 0x5e}}
- return a, nil
-}
-
-var _uiTemplatesServiceYaml = []byte(`# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-{{- $svc := .Spec.Service.Template }}
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ .Name }}-ui
- namespace: {{ .Namespace }}
- labels:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
- operator.skywalking.apache.org/application: ui
- operator.skywalking.apache.org/component: service
-spec:
- type: {{ $svc.Type }}
- ports:
- - port: 80
- targetPort: 8080
- name: page
- {{- if $svc.ExternalIPs }}
- externalIPs:
- {{- range $value := $svc.ExternalIPs }}
- - {{ $value | quote }}
- {{- end }}
- {{- end }}
- {{- if $svc.LoadBalancerIP }}
- loadBalancerIP: {{ $svc.LoadBalancerIP }}
- {{- end }}
- {{- if $svc.LoadBalancerSourceRanges }}
- loadBalancerSourceRanges:
- {{- range $value := $svc.LoadBalancerSourceRanges }}
- - {{ $value | quote}}
- {{- end }}
- {{- end }}
- selector:
- app: ui
- operator.skywalking.apache.org/ui-name: {{ .Name }}
-`)
-
-func uiTemplatesServiceYamlBytes() ([]byte, error) {
- return _uiTemplatesServiceYaml, nil
-}
-
-func uiTemplatesServiceYaml() (*asset, error) {
- bytes, err := uiTemplatesServiceYamlBytes()
- if err != nil {
- return nil, err
- }
-
- info := bindataFileInfo{name: "ui/templates/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
- a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x25, 0xdf, 0xf0, 0x9e, 0x39, 0xbe, 0x97, 0x7e, 0x89, 0xb8, 0xc7, 0xa8, 0xc7, 0x13, 0x20, 0x9c, 0x33, 0x24, 0xb7, 0xa7, 0x83, 0x42, 0xf3, 0xdc, 0xd6, 0x4a, 0x53, 0x16, 0x48, 0x83, 0x36, 0x9e}}
- return a, nil
-}
-
-// Asset loads and returns the asset for the given name.
-// It returns an error if the asset could not be found or
-// could not be loaded.
-func Asset(name string) ([]byte, error) {
- canonicalName := strings.Replace(name, "\\", "/", -1)
- if f, ok := _bindata[canonicalName]; ok {
- a, err := f()
- if err != nil {
- return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
- }
- return a.bytes, nil
- }
- return nil, fmt.Errorf("Asset %s not found", name)
-}
-
-// AssetString returns the asset contents as a string (instead of a []byte).
-func AssetString(name string) (string, error) {
- data, err := Asset(name)
- return string(data), err
-}
-
-// MustAsset is like Asset but panics when Asset would return an error.
-// It simplifies safe initialization of global variables.
-func MustAsset(name string) []byte {
- a, err := Asset(name)
- if err != nil {
- panic("asset: Asset(" + name + "): " + err.Error())
- }
-
- return a
-}
-
-// MustAssetString is like AssetString but panics when Asset would return an
-// error. It simplifies safe initialization of global variables.
-func MustAssetString(name string) string {
- return string(MustAsset(name))
-}
-
-// AssetInfo loads and returns the asset info for the given name.
-// It returns an error if the asset could not be found or
-// could not be loaded.
-func AssetInfo(name string) (os.FileInfo, error) {
- canonicalName := strings.Replace(name, "\\", "/", -1)
- if f, ok := _bindata[canonicalName]; ok {
- a, err := f()
- if err != nil {
- return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
- }
- return a.info, nil
- }
- return nil, fmt.Errorf("AssetInfo %s not found", name)
-}
-
-// AssetDigest returns the digest of the file with the given name. It returns an
-// error if the asset could not be found or the digest could not be loaded.
-func AssetDigest(name string) ([sha256.Size]byte, error) {
- canonicalName := strings.Replace(name, "\\", "/", -1)
- if f, ok := _bindata[canonicalName]; ok {
- a, err := f()
- if err != nil {
- return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
- }
- return a.digest, nil
- }
- return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
-}
-
-// Digests returns a map of all known files and their checksums.
-func Digests() (map[string][sha256.Size]byte, error) {
- mp := make(map[string][sha256.Size]byte, len(_bindata))
- for name := range _bindata {
- a, err := _bindata[name]()
- if err != nil {
- return nil, err
- }
- mp[name] = a.digest
- }
- return mp, nil
-}
-
-// AssetNames returns the names of the assets.
-func AssetNames() []string {
- names := make([]string, 0, len(_bindata))
- for name := range _bindata {
- names = append(names, name)
- }
- return names
-}
-
-// _bindata is a table, holding each asset generator, mapped to its name.
-var _bindata = map[string]func() (*asset, error){
- "fetcher/templates/cluster_role.yaml": fetcherTemplatesCluster_roleYaml,
- "fetcher/templates/cluster_role_binding.yaml": fetcherTemplatesCluster_role_bindingYaml,
- "fetcher/templates/configmap.yaml": fetcherTemplatesConfigmapYaml,
- "fetcher/templates/deployment.yaml": fetcherTemplatesDeploymentYaml,
- "fetcher/templates/service_account.yaml": fetcherTemplatesService_accountYaml,
- "injector/templates/annotations.yaml": injectorTemplatesAnnotationsYaml,
- "injector/templates/configmap.yaml": injectorTemplatesConfigmapYaml,
- "injector/templates/javaagent.yaml": injectorTemplatesJavaagentYaml,
- "oapserver/templates/cluster_role.yaml": oapserverTemplatesCluster_roleYaml,
- "oapserver/templates/cluster_role_binding.yaml": oapserverTemplatesCluster_role_bindingYaml,
- "oapserver/templates/deployment.yaml": oapserverTemplatesDeploymentYaml,
- "oapserver/templates/ingress.yaml": oapserverTemplatesIngressYaml,
- "oapserver/templates/service.yaml": oapserverTemplatesServiceYaml,
- "oapserver/templates/service_account.yaml": oapserverTemplatesService_accountYaml,
- "satellite/templates/cluster_role.yaml": satelliteTemplatesCluster_roleYaml,
- "satellite/templates/cluster_role_binding.yaml": satelliteTemplatesCluster_role_bindingYaml,
- "satellite/templates/deployment.yaml": satelliteTemplatesDeploymentYaml,
- "satellite/templates/service.yaml": satelliteTemplatesServiceYaml,
- "satellite/templates/service_account.yaml": satelliteTemplatesService_accountYaml,
- "storage/elasticsearch/templates/configmap.yaml": storageElasticsearchTemplatesConfigmapYaml,
- "storage/elasticsearch/templates/service.yaml": storageElasticsearchTemplatesServiceYaml,
- "storage/elasticsearch/templates/service_account.yaml": storageElasticsearchTemplatesService_accountYaml,
- "storage/elasticsearch/templates/statefulset.yaml": storageElasticsearchTemplatesStatefulsetYaml,
- "ui/templates/deployment.yaml": uiTemplatesDeploymentYaml,
- "ui/templates/ingress.yaml": uiTemplatesIngressYaml,
- "ui/templates/service.yaml": uiTemplatesServiceYaml,
-}
-
-// AssetDebug is true if the assets were built with the debug flag enabled.
-const AssetDebug = false
-
-// AssetDir returns the file names below a certain
-// directory embedded in the file by go-bindata.
-// For example if you run go-bindata on data/... and data contains the
-// following hierarchy:
-// data/
-// foo.txt
-// img/
-// a.png
-// b.png
-// then AssetDir("data") would return []string{"foo.txt", "img"},
-// AssetDir("data/img") would return []string{"a.png", "b.png"},
-// AssetDir("foo.txt") and AssetDir("notexist") would return an error, and
-// AssetDir("") will return []string{"data"}.
-func AssetDir(name string) ([]string, error) {
- node := _bintree
- if len(name) != 0 {
- canonicalName := strings.Replace(name, "\\", "/", -1)
- pathList := strings.Split(canonicalName, "/")
- for _, p := range pathList {
- node = node.Children[p]
- if node == nil {
- return nil, fmt.Errorf("Asset %s not found", name)
- }
- }
- }
- if node.Func != nil {
- return nil, fmt.Errorf("Asset %s not found", name)
- }
- rv := make([]string, 0, len(node.Children))
- for childName := range node.Children {
- rv = append(rv, childName)
- }
- return rv, nil
-}
-
-type bintree struct {
- Func func() (*asset, error)
- Children map[string]*bintree
-}
-
-var _bintree = &bintree{nil, map[string]*bintree{
- "fetcher": &bintree{nil, map[string]*bintree{
- "templates": &bintree{nil, map[string]*bintree{
- "cluster_role.yaml": &bintree{fetcherTemplatesCluster_roleYaml, map[string]*bintree{}},
- "cluster_role_binding.yaml": &bintree{fetcherTemplatesCluster_role_bindingYaml, map[string]*bintree{}},
- "configmap.yaml": &bintree{fetcherTemplatesConfigmapYaml, map[string]*bintree{}},
- "deployment.yaml": &bintree{fetcherTemplatesDeploymentYaml, map[string]*bintree{}},
- "service_account.yaml": &bintree{fetcherTemplatesService_accountYaml, map[string]*bintree{}},
- }},
- }},
- "injector": &bintree{nil, map[string]*bintree{
- "templates": &bintree{nil, map[string]*bintree{
- "annotations.yaml": &bintree{injectorTemplatesAnnotationsYaml, map[string]*bintree{}},
- "configmap.yaml": &bintree{injectorTemplatesConfigmapYaml, map[string]*bintree{}},
- "javaagent.yaml": &bintree{injectorTemplatesJavaagentYaml, map[string]*bintree{}},
- }},
- }},
- "oapserver": &bintree{nil, map[string]*bintree{
- "templates": &bintree{nil, map[string]*bintree{
- "cluster_role.yaml": &bintree{oapserverTemplatesCluster_roleYaml, map[string]*bintree{}},
- "cluster_role_binding.yaml": &bintree{oapserverTemplatesCluster_role_bindingYaml, map[string]*bintree{}},
- "deployment.yaml": &bintree{oapserverTemplatesDeploymentYaml, map[string]*bintree{}},
- "ingress.yaml": &bintree{oapserverTemplatesIngressYaml, map[string]*bintree{}},
- "service.yaml": &bintree{oapserverTemplatesServiceYaml, map[string]*bintree{}},
- "service_account.yaml": &bintree{oapserverTemplatesService_accountYaml, map[string]*bintree{}},
- }},
- }},
- "satellite": &bintree{nil, map[string]*bintree{
- "templates": &bintree{nil, map[string]*bintree{
- "cluster_role.yaml": &bintree{satelliteTemplatesCluster_roleYaml, map[string]*bintree{}},
- "cluster_role_binding.yaml": &bintree{satelliteTemplatesCluster_role_bindingYaml, map[string]*bintree{}},
- "deployment.yaml": &bintree{satelliteTemplatesDeploymentYaml, map[string]*bintree{}},
- "service.yaml": &bintree{satelliteTemplatesServiceYaml, map[string]*bintree{}},
- "service_account.yaml": &bintree{satelliteTemplatesService_accountYaml, map[string]*bintree{}},
- }},
- }},
- "storage": &bintree{nil, map[string]*bintree{
- "elasticsearch": &bintree{nil, map[string]*bintree{
- "templates": &bintree{nil, map[string]*bintree{
- "configmap.yaml": &bintree{storageElasticsearchTemplatesConfigmapYaml, map[string]*bintree{}},
- "service.yaml": &bintree{storageElasticsearchTemplatesServiceYaml, map[string]*bintree{}},
- "service_account.yaml": &bintree{storageElasticsearchTemplatesService_accountYaml, map[string]*bintree{}},
- "statefulset.yaml": &bintree{storageElasticsearchTemplatesStatefulsetYaml, map[string]*bintree{}},
- }},
- }},
- }},
- "ui": &bintree{nil, map[string]*bintree{
- "templates": &bintree{nil, map[string]*bintree{
- "deployment.yaml": &bintree{uiTemplatesDeploymentYaml, map[string]*bintree{}},
- "ingress.yaml": &bintree{uiTemplatesIngressYaml, map[string]*bintree{}},
- "service.yaml": &bintree{uiTemplatesServiceYaml, map[string]*bintree{}},
- }},
- }},
-}}
-
-// RestoreAsset restores an asset under the given directory.
-func RestoreAsset(dir, name string) error {
- data, err := Asset(name)
- if err != nil {
- return err
- }
- info, err := AssetInfo(name)
- if err != nil {
- return err
- }
- err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
- if err != nil {
- return err
- }
- err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
- if err != nil {
- return err
- }
- return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
-}
-
-// RestoreAssets restores an asset under the given directory recursively.
-func RestoreAssets(dir, name string) error {
- children, err := AssetDir(name)
- // File
- if err != nil {
- return RestoreAsset(dir, name)
- }
- // Dir
- for _, child := range children {
- err = RestoreAssets(dir, filepath.Join(name, child))
- if err != nil {
- return err
- }
- }
- return nil
-}
-
-func _filePath(dir, name string) string {
- canonicalName := strings.Replace(name, "\\", "/", -1)
- return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
-}