mirror of
https://github.com/kairos-io/entangle.git
synced 2025-04-27 19:17:25 +00:00
🎨 Rebrand to kairos
This commit is contained in:
parent
8383445dd1
commit
64e151bb97
2
.github/workflows/image.yml
vendored
2
.github/workflows/image.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
||||
- name: Prepare
|
||||
id: prep
|
||||
run: |
|
||||
DOCKER_IMAGE=quay.io/c3os/entangle
|
||||
DOCKER_IMAGE=quay.io/kairos/entangle
|
||||
VERSION=latest
|
||||
SHORTREF=${GITHUB_SHA::8}
|
||||
# If this is git tag, use the tag name as a docker tag
|
||||
|
8
Makefile
8
Makefile
@ -5,8 +5,8 @@
|
||||
# - use environment variables to overwrite this value (e.g export VERSION=0.0.2)
|
||||
VERSION ?= 0.0.1
|
||||
|
||||
IMG ?= quay.io/c3os/entangle:test
|
||||
export CLUSTER_NAME?=c3os-entangle-e2e
|
||||
IMG ?= quay.io/kairos/entangle:test
|
||||
export CLUSTER_NAME?=kairos-entangle-e2e
|
||||
export ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
|
||||
# CHANNELS define the bundle channels used in the bundle.
|
||||
@ -32,8 +32,8 @@ BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL)
|
||||
# This variable is used to construct full image tags for bundle and catalog images.
|
||||
#
|
||||
# For example, running 'make bundle-build bundle-push catalog-build catalog-push' will build and push both
|
||||
# c3os-x.io/entangle-bundle:$VERSION and c3os-x.io/entangle-catalog:$VERSION.
|
||||
IMAGE_TAG_BASE ?= c3os-x.io/entangle
|
||||
# kairos.io/entangle-bundle:$VERSION and kairos.io/entangle-catalog:$VERSION.
|
||||
IMAGE_TAG_BASE ?= kairos.io/entangle
|
||||
|
||||
# BUNDLE_IMG defines the image:tag used for the bundle.
|
||||
# You can use it as an arg. (E.g make bundle-build BUNDLE_IMG=<some-registry>/<project-name-bundle>:<tag>)
|
||||
|
8
PROJECT
8
PROJECT
@ -1,20 +1,20 @@
|
||||
domain: c3os-x.io
|
||||
domain: kairos.io
|
||||
layout:
|
||||
- go.kubebuilder.io/v3
|
||||
plugins:
|
||||
manifests.sdk.operatorframework.io/v2: {}
|
||||
scorecard.sdk.operatorframework.io/v2: {}
|
||||
projectName: entangle
|
||||
repo: github.com/c3os-io/entangle
|
||||
repo: github.com/kairos-io/entangle
|
||||
resources:
|
||||
- api:
|
||||
crdVersion: v1
|
||||
namespaced: true
|
||||
controller: true
|
||||
domain: c3os-x.io
|
||||
domain: kairos.io
|
||||
group: entangle
|
||||
kind: Entanglement
|
||||
path: github.com/c3os-io/entangle/api/v1alpha1
|
||||
path: github.com/kairos-io/entangle/api/v1alpha1
|
||||
version: v1alpha1
|
||||
webhooks:
|
||||
defaulting: true
|
||||
|
@ -15,8 +15,8 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
// Package v1alpha1 contains API Schema definitions for the entangle v1alpha1 API group
|
||||
//+kubebuilder:object:generate=true
|
||||
//+groupName=entangle.c3os-x.io
|
||||
// +kubebuilder:object:generate=true
|
||||
// +groupName=entangle.kairos.io
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
@ -26,7 +26,7 @@ import (
|
||||
|
||||
var (
|
||||
// GroupVersion is group version used to register these objects
|
||||
GroupVersion = schema.GroupVersion{Group: "entangle.c3os-x.io", Version: "v1alpha1"}
|
||||
GroupVersion = schema.GroupVersion{Group: "entangle.kairos.io", Version: "v1alpha1"}
|
||||
|
||||
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
|
||||
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
|
||||
|
@ -5,9 +5,9 @@ metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.9.0
|
||||
creationTimestamp: null
|
||||
name: entanglements.entangle.c3os-x.io
|
||||
name: entanglements.entangle.kairos.io
|
||||
spec:
|
||||
group: entangle.c3os-x.io
|
||||
group: entangle.kairos.io
|
||||
names:
|
||||
kind: Entanglement
|
||||
listKind: EntanglementList
|
||||
|
@ -2,7 +2,7 @@
|
||||
# since it depends on service name and namespace that are out of this kustomize package.
|
||||
# It should be run by config/default
|
||||
resources:
|
||||
- bases/entangle.c3os-x.io_entanglements.yaml
|
||||
- bases/entangle.kairos.io_entanglements.yaml
|
||||
#+kubebuilder:scaffold:crdkustomizeresource
|
||||
|
||||
patchesStrategicMerge:
|
||||
|
@ -4,4 +4,4 @@ kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
|
||||
name: entanglements.entangle.c3os-x.io
|
||||
name: entanglements.entangle.kairos.io
|
||||
|
@ -2,7 +2,7 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: entanglements.entangle.c3os-x.io
|
||||
name: entanglements.entangle.kairos.io
|
||||
spec:
|
||||
conversion:
|
||||
strategy: Webhook
|
||||
|
@ -8,7 +8,7 @@ webhook:
|
||||
port: 9443
|
||||
leaderElection:
|
||||
leaderElect: true
|
||||
resourceName: 680ae91e.c3os-x.io
|
||||
resourceName: 680ae91e.kairos.io
|
||||
# leaderElectionReleaseOnCancel defines if the leader should step down volume
|
||||
# when the Manager ends. This requires the binary to immediately end when the
|
||||
# Manager is stopped, otherwise, this setting is unsafe. Setting this significantly
|
||||
|
@ -12,5 +12,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
images:
|
||||
- name: controller
|
||||
newName: quay.io/c3os/entangle
|
||||
newName: quay.io/kairos/entangle
|
||||
newTag: test
|
||||
|
@ -5,7 +5,7 @@ metadata:
|
||||
name: entanglement-editor-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements
|
||||
verbs:
|
||||
@ -17,7 +17,7 @@ rules:
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements/status
|
||||
verbs:
|
||||
|
@ -5,7 +5,7 @@ metadata:
|
||||
name: entanglement-viewer-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements
|
||||
verbs:
|
||||
@ -13,7 +13,7 @@ rules:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements/status
|
||||
verbs:
|
||||
|
@ -36,7 +36,7 @@ rules:
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements
|
||||
verbs:
|
||||
@ -48,13 +48,13 @@ rules:
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- entangle.c3os-x.io
|
||||
- entangle.kairos.io
|
||||
resources:
|
||||
- entanglements/status
|
||||
verbs:
|
||||
|
@ -1,4 +1,4 @@
|
||||
apiVersion: entangle.c3os-x.io/v1alpha1
|
||||
apiVersion: entangle.kairos.io/v1alpha1
|
||||
kind: Entanglement
|
||||
metadata:
|
||||
name: entanglement-sample
|
||||
|
@ -12,7 +12,7 @@ webhooks:
|
||||
service:
|
||||
name: webhook-service
|
||||
namespace: system
|
||||
path: /mutate-entangle-c3os-x-io-v1alpha1-entanglement
|
||||
path: /mutate-entangle-kairos-x-io-v1alpha1-entanglement
|
||||
failurePolicy: Ignore
|
||||
name: mentanglement.kb.io
|
||||
rules:
|
||||
|
@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
entanglev1alpha1 "github.com/c3os-io/entangle/api/v1alpha1"
|
||||
entanglev1alpha1 "github.com/kairos-io/entangle/api/v1alpha1"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@ -128,6 +128,6 @@ func (r *EntanglementReconciler) genDeployment(ent entanglev1alpha1.Entanglement
|
||||
|
||||
func genDeploymentLabel(s string) map[string]string {
|
||||
return map[string]string{
|
||||
"entanglement.c3os-x.io": s,
|
||||
"entanglement.kairos.io": s,
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
entanglev1alpha1 "github.com/c3os-io/entangle/api/v1alpha1"
|
||||
entanglev1alpha1 "github.com/kairos-io/entangle/api/v1alpha1"
|
||||
)
|
||||
|
||||
// EntanglementReconciler reconciles a Entanglement object
|
||||
@ -41,9 +41,9 @@ type EntanglementReconciler struct {
|
||||
EntangleServiceImage string
|
||||
}
|
||||
|
||||
//+kubebuilder:rbac:groups=entangle.c3os-x.io,resources=entanglements,verbs=get;list;watch;create;update;patch;delete
|
||||
//+kubebuilder:rbac:groups=entangle.c3os-x.io,resources=entanglements/status,verbs=get;update;patch
|
||||
//+kubebuilder:rbac:groups=entangle.c3os-x.io,resources=entanglements/finalizers,verbs=update
|
||||
//+kubebuilder:rbac:groups=entangle.kairos.io,resources=entanglements,verbs=get;list;watch;create;update;patch;delete
|
||||
//+kubebuilder:rbac:groups=entangle.kairos.io,resources=entanglements/status,verbs=get;update;patch
|
||||
//+kubebuilder:rbac:groups=entangle.kairos.io,resources=entanglements/finalizers,verbs=update
|
||||
//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
|
||||
//+kubebuilder:rbac:groups="",resources=secrets,verbs=create;get;list;watch
|
||||
//+kubebuilder:rbac:groups="",resources=services,verbs=create;get;list;watch
|
||||
|
@ -30,7 +30,7 @@ import (
|
||||
logf "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
"sigs.k8s.io/controller-runtime/pkg/log/zap"
|
||||
|
||||
entanglev1alpha1 "github.com/c3os-io/entangle/api/v1alpha1"
|
||||
entanglev1alpha1 "github.com/kairos-io/entangle/api/v1alpha1"
|
||||
//+kubebuilder:scaffold:imports
|
||||
)
|
||||
|
||||
|
@ -28,14 +28,14 @@ type Webhook struct {
|
||||
}
|
||||
|
||||
//+kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch
|
||||
//+kubebuilder:webhook:verbs=create;update,path=/mutate-entangle-c3os-x-io-v1alpha1-entanglement,mutating=true,failurePolicy=ignore,sideEffects=None,groups=core,resources=pods,versions=v1,name=mentanglement.kb.io,admissionReviewVersions={v1,v1alpha1}
|
||||
//+kubebuilder:webhook:verbs=create;update,path=/mutate-entangle-kairos-x-io-v1alpha1-entanglement,mutating=true,failurePolicy=ignore,sideEffects=None,groups=core,resources=pods,versions=v1,name=mentanglement.kb.io,admissionReviewVersions={v1,v1alpha1}
|
||||
|
||||
var (
|
||||
EntanglementNameLabel = "entanglement.c3os-x.io/name"
|
||||
EntanglementServiceLabel = "entanglement.c3os-x.io/service"
|
||||
EntanglementDirectionLabel = "entanglement.c3os-x.io/direction"
|
||||
EntanglementPortLabel = "entanglement.c3os-x.io/target_port"
|
||||
EntanglementHostLabel = "entanglement.c3os-x.io/host"
|
||||
EntanglementNameLabel = "entanglement.kairos.io/name"
|
||||
EntanglementServiceLabel = "entanglement.kairos.io/service"
|
||||
EntanglementDirectionLabel = "entanglement.kairos.io/direction"
|
||||
EntanglementPortLabel = "entanglement.kairos.io/target_port"
|
||||
EntanglementHostLabel = "entanglement.kairos.io/host"
|
||||
)
|
||||
|
||||
func (w *Webhook) SetupWebhookWithManager(mgr manager.Manager) error {
|
||||
@ -47,7 +47,7 @@ func (w *Webhook) SetupWebhookWithManager(mgr manager.Manager) error {
|
||||
|
||||
return webhook.NewGenericWebhookManagedBy(mgr).
|
||||
For(&corev1.Pod{}).
|
||||
WithMutatePath("/mutate-entangle-c3os-x-io-v1alpha1-entanglement").
|
||||
WithMutatePath("/mutate-entangle-kairos-x-io-v1alpha1-entanglement").
|
||||
Complete(w)
|
||||
}
|
||||
|
||||
|
2
go.mod
2
go.mod
@ -1,4 +1,4 @@
|
||||
module github.com/c3os-io/entangle
|
||||
module github.com/kairos-io/entangle
|
||||
|
||||
go 1.18
|
||||
|
||||
|
8
main.go
8
main.go
@ -31,9 +31,9 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/healthz"
|
||||
"sigs.k8s.io/controller-runtime/pkg/log/zap"
|
||||
|
||||
entanglev1alpha1 "github.com/c3os-io/entangle/api/v1alpha1"
|
||||
"github.com/c3os-io/entangle/controllers"
|
||||
webhooks "github.com/c3os-io/entangle/controllers/webhooks"
|
||||
entanglev1alpha1 "github.com/kairos-io/entangle/api/v1alpha1"
|
||||
"github.com/kairos-io/entangle/controllers"
|
||||
webhooks "github.com/kairos-io/entangle/controllers/webhooks"
|
||||
//+kubebuilder:scaffold:imports
|
||||
)
|
||||
|
||||
@ -76,7 +76,7 @@ func main() {
|
||||
Port: 9443,
|
||||
HealthProbeBindAddress: probeAddr,
|
||||
LeaderElection: enableLeaderElection,
|
||||
LeaderElectionID: "680ae91e.c3os-x.io",
|
||||
LeaderElectionID: "680ae91e.kairos.io",
|
||||
// LeaderElectionReleaseOnCancel defines if the leader should step down voluntarily
|
||||
// when the Manager ends. This requires the binary to immediately end when the
|
||||
// Manager is stopped, otherwise, this setting is unsafe. Setting this significantly
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
KUBE_VERSION=${KUBE_VERSION:-v1.22.7}
|
||||
CLUSTER_NAME="${CLUSTER_NAME:-c3os-e2e}"
|
||||
CLUSTER_NAME="${CLUSTER_NAME:-kairos-e2e}"
|
||||
|
||||
if ! kind get clusters | grep "$CLUSTER_NAME"; then
|
||||
cat << EOF > kind.config
|
||||
|
8
tests/fixtures/entangle.yaml
vendored
8
tests/fixtures/entangle.yaml
vendored
@ -7,15 +7,15 @@ type: Opaque
|
||||
stringData:
|
||||
network_token: b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IFVSRDVaMkcySDNKSFVESVpYT1VXQkVPN1VEU0g2TUpGUzJGV01QM1dBRVhaMjZRUTJGUkEKICAgIGxlbmd0aDogMzIKICBjcnlwdG86CiAgICBpbnRlcnZhbDogOTAwMAogICAga2V5OiBKTVJKWVZKN0xFR0lZQktFVFNERzVSRFhESkFKM0dTWVJOUTNUTVRQUkpMUkwzWEZYUVpBCiAgICBsZW5ndGg6IDMyCnJvb206IFJYWlZSNURCN1VWVERGRDc0UzRBTEFKNllHRVFDVlQ0WE5VWExFQTRVM0FDN05ESFFLTVEKcmVuZGV6dm91czogYk9PR21WV0lCV1ptbXBtaW9PcXdhc0dyWExlaXpnTVkKbWRuczogUnN4ZWd6eGZTcFlRRUtqQk1lUEFQelROWUV5ZGRlemEKbWF4X21lc3NhZ2Vfc2l6ZTogMjA5NzE1MjAK
|
||||
---
|
||||
apiVersion: entangle.c3os-x.io/v1alpha1
|
||||
apiVersion: entangle.kairos.io/v1alpha1
|
||||
kind: Entanglement
|
||||
metadata:
|
||||
name: hello
|
||||
namespace: default
|
||||
labels:
|
||||
entanglement.c3os-x.io/name: "mysecret"
|
||||
entanglement.c3os-x.io/service: "foo"
|
||||
entanglement.c3os-x.io/target_port: "9090"
|
||||
entanglement.kairos.io/name: "mysecret"
|
||||
entanglement.kairos.io/service: "foo"
|
||||
entanglement.kairos.io/target_port: "9090"
|
||||
spec:
|
||||
serviceUUID: "foo"
|
||||
secretRef: "mysecret"
|
||||
|
10
tests/fixtures/example.yaml
vendored
10
tests/fixtures/example.yaml
vendored
@ -23,10 +23,10 @@ spec:
|
||||
metadata:
|
||||
labels:
|
||||
app: entangle-proxy
|
||||
entanglement.c3os-x.io/name: "mysecret"
|
||||
entanglement.c3os-x.io/service: "foo"
|
||||
entanglement.c3os-x.io/target_port: "8001"
|
||||
entanglement.c3os-x.io/direction: "entangle"
|
||||
entanglement.kairos.io/name: "mysecret"
|
||||
entanglement.kairos.io/service: "foo"
|
||||
entanglement.kairos.io/target_port: "8001"
|
||||
entanglement.kairos.io/direction: "entangle"
|
||||
name: entangle-proxy
|
||||
spec:
|
||||
containers:
|
||||
@ -37,7 +37,7 @@ spec:
|
||||
args:
|
||||
- "proxy"
|
||||
---
|
||||
apiVersion: entangle.c3os-x.io/v1alpha1
|
||||
apiVersion: entangle.kairos.io/v1alpha1
|
||||
kind: Entanglement
|
||||
metadata:
|
||||
name: test
|
||||
|
4
tests/fixtures/example2.yaml
vendored
4
tests/fixtures/example2.yaml
vendored
@ -7,7 +7,7 @@ type: Opaque
|
||||
stringData:
|
||||
network_token: b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IFVSRDVaMkcySDNKSFVESVpYT1VXQkVPN1VEU0g2TUpGUzJGV01QM1dBRVhaMjZRUTJGUkEKICAgIGxlbmd0aDogMzIKICBjcnlwdG86CiAgICBpbnRlcnZhbDogOTAwMAogICAga2V5OiBKTVJKWVZKN0xFR0lZQktFVFNERzVSRFhESkFKM0dTWVJOUTNUTVRQUkpMUkwzWEZYUVpBCiAgICBsZW5ndGg6IDMyCnJvb206IFJYWlZSNURCN1VWVERGRDc0UzRBTEFKNllHRVFDVlQ0WE5VWExFQTRVM0FDN05ESFFLTVEKcmVuZGV6dm91czogYk9PR21WV0lCV1ptbXBtaW9PcXdhc0dyWExlaXpnTVkKbWRuczogUnN4ZWd6eGZTcFlRRUtqQk1lUEFQelROWUV5ZGRlemEKbWF4X21lc3NhZ2Vfc2l6ZTogMjA5NzE1MjAK
|
||||
---
|
||||
apiVersion: entangle.c3os-x.io/v1alpha1
|
||||
apiVersion: entangle.kairos.io/v1alpha1
|
||||
kind: Entanglement
|
||||
metadata:
|
||||
name: test2
|
||||
@ -19,7 +19,7 @@ spec:
|
||||
port: "80"
|
||||
hostNetwork: true
|
||||
---
|
||||
apiVersion: entangle.c3os-x.io/v1alpha1
|
||||
apiVersion: entangle.kairos.io/v1alpha1
|
||||
kind: Entanglement
|
||||
metadata:
|
||||
name: test3
|
||||
|
14
tests/fixtures/example3.yaml
vendored
14
tests/fixtures/example3.yaml
vendored
@ -72,10 +72,10 @@ spec:
|
||||
metadata:
|
||||
labels:
|
||||
app: entangle-proxy
|
||||
entanglement.c3os-x.io/name: "mysecret"
|
||||
entanglement.c3os-x.io/service: "foo"
|
||||
entanglement.c3os-x.io/target_port: "8001"
|
||||
entanglement.c3os-x.io/direction: "entangle"
|
||||
entanglement.kairos.io/name: "mysecret"
|
||||
entanglement.kairos.io/service: "foo"
|
||||
entanglement.kairos.io/target_port: "8001"
|
||||
entanglement.kairos.io/direction: "entangle"
|
||||
name: entangle-proxy
|
||||
spec:
|
||||
serviceAccountName: entangle
|
||||
@ -103,9 +103,9 @@ spec:
|
||||
metadata:
|
||||
labels:
|
||||
app: entangle-kube
|
||||
entanglement.c3os-x.io/name: "mysecret"
|
||||
entanglement.c3os-x.io/service: "foo"
|
||||
entanglement.c3os-x.io/target_port: "8080"
|
||||
entanglement.kairos.io/name: "mysecret"
|
||||
entanglement.kairos.io/service: "foo"
|
||||
entanglement.kairos.io/target_port: "8080"
|
||||
name: entangle-kube
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
|
6
tests/fixtures/simple.yaml
vendored
6
tests/fixtures/simple.yaml
vendored
@ -13,9 +13,9 @@ metadata:
|
||||
name: hello
|
||||
namespace: default
|
||||
labels:
|
||||
entanglement.c3os-x.io/name: "mysecret"
|
||||
entanglement.c3os-x.io/service: "foo"
|
||||
entanglement.c3os-x.io/target_port: "9090"
|
||||
entanglement.kairos.io/name: "mysecret"
|
||||
entanglement.kairos.io/service: "foo"
|
||||
entanglement.kairos.io/target_port: "9090"
|
||||
spec:
|
||||
containers:
|
||||
- name: hello
|
||||
|
Loading…
Reference in New Issue
Block a user