1764 lines
51 KiB
YAML
1764 lines
51 KiB
YAML
|
---
|
||
|
{{- if and .Values.imagePullSecrets .Values.imagePullSecrets.repository .Values.imagePullSecrets.username .Values.imagePullSecrets.password }}
|
||
|
apiVersion: v1
|
||
|
data:
|
||
|
.dockerconfigjson: {{
|
||
|
printf "{\"auths\":{\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}}}"
|
||
|
.Values.imagePullSecrets.repository
|
||
|
.Values.imagePullSecrets.username
|
||
|
.Values.imagePullSecrets.password
|
||
|
.Values.imagePullSecrets.email
|
||
|
(printf "%s:%s" .Values.imagePullSecrets.username .Values.imagePullSecrets.password | b64enc)
|
||
|
| b64enc
|
||
|
}}
|
||
|
kind: Secret
|
||
|
metadata:
|
||
|
name: kubeslice-image-pull-secret
|
||
|
namespace: kubeslice-controller
|
||
|
type: kubernetes.io/dockerconfigjson
|
||
|
{{- end }}
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
cert-manager.io/inject-ca-from: kubeslice-controller/kubeslice-controller-serving-cert
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
name: clusters.controller.kubeslice.io
|
||
|
spec:
|
||
|
conversion:
|
||
|
strategy: Webhook
|
||
|
webhook:
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /convert
|
||
|
conversionReviewVersions:
|
||
|
- v1
|
||
|
group: controller.kubeslice.io
|
||
|
names:
|
||
|
kind: Cluster
|
||
|
listKind: ClusterList
|
||
|
plural: clusters
|
||
|
singular: cluster
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: Cluster is the Schema for the clusters API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: ClusterSpec defines the desired state of Cluster
|
||
|
properties:
|
||
|
clusterProperty:
|
||
|
description: put in an object
|
||
|
properties:
|
||
|
geoLocation:
|
||
|
description: GeoLocation contains information regarding Geographical Location of the Cluster
|
||
|
properties:
|
||
|
cloudProvider:
|
||
|
description: CloudProvider is the cloud service provider
|
||
|
type: string
|
||
|
cloudRegion:
|
||
|
description: CloudRegion is the region of the cloud
|
||
|
type: string
|
||
|
latitude:
|
||
|
description: Latitude is the latitude of the cluster
|
||
|
type: string
|
||
|
longitude:
|
||
|
description: Longitude is the longitude of the cluster
|
||
|
type: string
|
||
|
type: object
|
||
|
monitoring:
|
||
|
description: Monitoring contains the Kubernetes Monitoring Dashboard
|
||
|
properties:
|
||
|
kubernetesDashboard:
|
||
|
description: KubernetesDashboard contains the information regarding Kubernetes Monitoring Dashboard
|
||
|
properties:
|
||
|
accessToken:
|
||
|
description: AccessToken is the Access Token to access the KubernetesDashboard
|
||
|
type: string
|
||
|
enabled:
|
||
|
description: Enabled is the enable status of the KubernetesDashboard
|
||
|
type: boolean
|
||
|
endpoint:
|
||
|
description: Endpoint is the base endpoint to access the kubernetes dashboard
|
||
|
type: string
|
||
|
ingressPrefix:
|
||
|
description: IngressPrefix is the prefix of ingress gateway for KubernetesDashboard
|
||
|
type: string
|
||
|
type: object
|
||
|
type: object
|
||
|
telemetry:
|
||
|
description: Telemetry contains Telemetry information
|
||
|
properties:
|
||
|
enabled:
|
||
|
description: Enabled is the enable status of the Telemetry
|
||
|
type: boolean
|
||
|
endpoint:
|
||
|
description: Endpoint is the Telemetry Endpoint
|
||
|
type: string
|
||
|
telemetryProvider:
|
||
|
description: TelemetryProvider is the Telemetry Provider information
|
||
|
type: string
|
||
|
type: object
|
||
|
type: object
|
||
|
networkInterface:
|
||
|
description: NetworkInterface is the network interface attached with the cluster.
|
||
|
type: string
|
||
|
nodeIP:
|
||
|
description: NodeIP is the IP address of the Node
|
||
|
type: string
|
||
|
type: object
|
||
|
status:
|
||
|
description: ClusterStatus defines the observed state of Cluster
|
||
|
properties:
|
||
|
cniSubnet:
|
||
|
description: CniSubnet is the podip and service ip subnet of CNI
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
namespaces:
|
||
|
description: Namespaces present in cluster
|
||
|
items:
|
||
|
properties:
|
||
|
name:
|
||
|
type: string
|
||
|
sliceName:
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
secretName:
|
||
|
description: SecretName is the name of the secret for the worker cluster.
|
||
|
type: string
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
cert-manager.io/inject-ca-from: kubeslice-controller/kubeslice-controller-serving-cert
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
name: projects.controller.kubeslice.io
|
||
|
spec:
|
||
|
conversion:
|
||
|
strategy: Webhook
|
||
|
webhook:
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /convert
|
||
|
conversionReviewVersions:
|
||
|
- v1
|
||
|
group: controller.kubeslice.io
|
||
|
names:
|
||
|
kind: Project
|
||
|
listKind: ProjectList
|
||
|
plural: projects
|
||
|
singular: project
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: Project is the Schema for the projects API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: ProjectSpec defines the desired state of Project
|
||
|
properties:
|
||
|
serviceAccount:
|
||
|
description: ServiceAccount is a field of Project. Edit project_types.go to remove/update
|
||
|
properties:
|
||
|
readOnly:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
readWrite:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
type: object
|
||
|
type: object
|
||
|
status:
|
||
|
description: ProjectStatus defines the observed state of Project
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
creationTimestamp: null
|
||
|
name: serviceexportconfigs.controller.kubeslice.io
|
||
|
spec:
|
||
|
group: controller.kubeslice.io
|
||
|
names:
|
||
|
kind: ServiceExportConfig
|
||
|
listKind: ServiceExportConfigList
|
||
|
plural: serviceexportconfigs
|
||
|
singular: serviceexportconfig
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: ServiceExportConfig is the Schema for the serviceexportconfigs API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: ServiceExportConfigSpec defines the desired state of ServiceExportConfig
|
||
|
properties:
|
||
|
serviceDiscoveryEndpoints:
|
||
|
description: the service discovery endpoint array
|
||
|
items:
|
||
|
properties:
|
||
|
cluster:
|
||
|
description: The ID of the cluster.
|
||
|
type: string
|
||
|
dnsName:
|
||
|
description: the dns_name of the service
|
||
|
type: string
|
||
|
nsmIp:
|
||
|
description: The NSM IP address.
|
||
|
type: string
|
||
|
podName:
|
||
|
description: The name of the pod.
|
||
|
type: string
|
||
|
port:
|
||
|
description: port of the service
|
||
|
format: int32
|
||
|
type: integer
|
||
|
type: object
|
||
|
type: array
|
||
|
serviceDiscoveryPorts:
|
||
|
description: The ports for the given service.
|
||
|
items:
|
||
|
properties:
|
||
|
name:
|
||
|
description: The name of the port.
|
||
|
type: string
|
||
|
port:
|
||
|
description: The port number.
|
||
|
format: int32
|
||
|
type: integer
|
||
|
protocol:
|
||
|
description: The protocol.
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
serviceName:
|
||
|
description: ServiceName is the name of the service
|
||
|
type: string
|
||
|
serviceNamespace:
|
||
|
type: string
|
||
|
sliceName:
|
||
|
description: The name of the slice.
|
||
|
type: string
|
||
|
sourceCluster:
|
||
|
description: clusterId is the id of the cluster where the service is available.
|
||
|
type: string
|
||
|
required:
|
||
|
- serviceName
|
||
|
- sliceName
|
||
|
- sourceCluster
|
||
|
type: object
|
||
|
status:
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
cert-manager.io/inject-ca-from: kubeslice-controller/kubeslice-controller-serving-cert
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
name: sliceconfigs.controller.kubeslice.io
|
||
|
spec:
|
||
|
conversion:
|
||
|
strategy: Webhook
|
||
|
webhook:
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /convert
|
||
|
conversionReviewVersions:
|
||
|
- v1
|
||
|
group: controller.kubeslice.io
|
||
|
names:
|
||
|
kind: SliceConfig
|
||
|
listKind: SliceConfigList
|
||
|
plural: sliceconfigs
|
||
|
singular: sliceconfig
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: SliceConfig is the Schema for the sliceconfig API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: SliceConfigSpec defines the desired state of SliceConfig
|
||
|
properties:
|
||
|
clusters:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
externalGatewayConfig:
|
||
|
items:
|
||
|
description: ExternalGatewayConfig is the configuration for external gateways like 'istio', etc/
|
||
|
properties:
|
||
|
clusters:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
egress:
|
||
|
properties:
|
||
|
enabled:
|
||
|
type: boolean
|
||
|
type: object
|
||
|
gatewayType:
|
||
|
enum:
|
||
|
- none
|
||
|
- istio
|
||
|
type: string
|
||
|
ingress:
|
||
|
properties:
|
||
|
enabled:
|
||
|
type: boolean
|
||
|
type: object
|
||
|
nsIngress:
|
||
|
properties:
|
||
|
enabled:
|
||
|
type: boolean
|
||
|
type: object
|
||
|
type: object
|
||
|
type: array
|
||
|
namespaceIsolationProfile:
|
||
|
properties:
|
||
|
allowedNamespaces:
|
||
|
items:
|
||
|
properties:
|
||
|
clusters:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
namespace:
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
applicationNamespaces:
|
||
|
items:
|
||
|
properties:
|
||
|
clusters:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
namespace:
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
isolationEnabled:
|
||
|
default: false
|
||
|
type: boolean
|
||
|
type: object
|
||
|
qosProfileDetails:
|
||
|
description: The custom QOS Profile Details
|
||
|
properties:
|
||
|
bandwidthCeilingKbps:
|
||
|
type: integer
|
||
|
bandwidthGuaranteedKbps:
|
||
|
type: integer
|
||
|
dscpClass:
|
||
|
enum:
|
||
|
- Default
|
||
|
- AF11
|
||
|
- AF12
|
||
|
- AF13
|
||
|
- AF21
|
||
|
- AF22
|
||
|
- AF23
|
||
|
- AF31
|
||
|
- AF32
|
||
|
- AF33
|
||
|
- AF41
|
||
|
- AF42
|
||
|
- AF43
|
||
|
- EF
|
||
|
type: string
|
||
|
priority:
|
||
|
type: integer
|
||
|
queueType:
|
||
|
default: HTB
|
||
|
type: string
|
||
|
tcType:
|
||
|
default: BANDWIDTH_CONTROL
|
||
|
type: string
|
||
|
required:
|
||
|
- bandwidthCeilingKbps
|
||
|
- bandwidthGuaranteedKbps
|
||
|
- dscpClass
|
||
|
- priority
|
||
|
- queueType
|
||
|
- tcType
|
||
|
type: object
|
||
|
sliceGatewayProvider:
|
||
|
description: WorkerSliceGatewayProvider defines the configuration for slicegateway
|
||
|
properties:
|
||
|
sliceCaType:
|
||
|
default: Local
|
||
|
type: string
|
||
|
sliceGatewayType:
|
||
|
default: OpenVPN
|
||
|
type: string
|
||
|
required:
|
||
|
- sliceCaType
|
||
|
- sliceGatewayType
|
||
|
type: object
|
||
|
sliceIpamType:
|
||
|
default: Local
|
||
|
type: string
|
||
|
sliceSubnet:
|
||
|
type: string
|
||
|
sliceType:
|
||
|
default: Application
|
||
|
type: string
|
||
|
standardQosProfileName:
|
||
|
type: string
|
||
|
required:
|
||
|
- sliceGatewayProvider
|
||
|
type: object
|
||
|
status:
|
||
|
description: SliceConfigStatus defines the observed state of SliceConfig
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
creationTimestamp: null
|
||
|
name: sliceqosconfigs.controller.kubeslice.io
|
||
|
spec:
|
||
|
group: controller.kubeslice.io
|
||
|
names:
|
||
|
kind: SliceQoSConfig
|
||
|
listKind: SliceQoSConfigList
|
||
|
plural: sliceqosconfigs
|
||
|
singular: sliceqosconfig
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: SliceQoSConfig is the Schema for the sliceqosconfigs API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: SliceQoSConfigSpec defines the desired state of SliceQoSConfig
|
||
|
properties:
|
||
|
bandwidthCeilingKbps:
|
||
|
type: integer
|
||
|
bandwidthGuaranteedKbps:
|
||
|
type: integer
|
||
|
dscpClass:
|
||
|
enum:
|
||
|
- Default
|
||
|
- AF11
|
||
|
- AF12
|
||
|
- AF13
|
||
|
- AF21
|
||
|
- AF22
|
||
|
- AF23
|
||
|
- AF31
|
||
|
- AF32
|
||
|
- AF33
|
||
|
- AF41
|
||
|
- AF42
|
||
|
- AF43
|
||
|
- EF
|
||
|
type: string
|
||
|
priority:
|
||
|
type: integer
|
||
|
queueType:
|
||
|
enum:
|
||
|
- HTB
|
||
|
type: string
|
||
|
tcType:
|
||
|
enum:
|
||
|
- BANDWIDTH_CONTROL
|
||
|
type: string
|
||
|
required:
|
||
|
- bandwidthCeilingKbps
|
||
|
- bandwidthGuaranteedKbps
|
||
|
- dscpClass
|
||
|
- priority
|
||
|
- queueType
|
||
|
- tcType
|
||
|
type: object
|
||
|
status:
|
||
|
description: SliceQoSConfigStatus defines the observed state of SliceQoSConfig
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
creationTimestamp: null
|
||
|
name: workerserviceimports.worker.kubeslice.io
|
||
|
spec:
|
||
|
group: worker.kubeslice.io
|
||
|
names:
|
||
|
kind: WorkerServiceImport
|
||
|
listKind: WorkerServiceImportList
|
||
|
plural: workerserviceimports
|
||
|
singular: workerserviceimport
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: WorkerServiceImport is the Schema for the workerserviceimport API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: WorkerServiceImportSpec defines the desired state of WorkerServiceImport
|
||
|
properties:
|
||
|
serviceDiscoveryEndpoints:
|
||
|
description: the service discovery endpoint array
|
||
|
items:
|
||
|
properties:
|
||
|
cluster:
|
||
|
description: The ID of the cluster.
|
||
|
type: string
|
||
|
dnsName:
|
||
|
description: the dns_name of the service
|
||
|
type: string
|
||
|
nsmIp:
|
||
|
description: The NSM IP address.
|
||
|
type: string
|
||
|
podName:
|
||
|
description: The name of the pod.
|
||
|
type: string
|
||
|
port:
|
||
|
description: port of the service
|
||
|
format: int32
|
||
|
type: integer
|
||
|
type: object
|
||
|
type: array
|
||
|
serviceDiscoveryPorts:
|
||
|
description: The ports for the given service.
|
||
|
items:
|
||
|
properties:
|
||
|
name:
|
||
|
description: The name of the port.
|
||
|
type: string
|
||
|
port:
|
||
|
description: The port number.
|
||
|
format: int32
|
||
|
type: integer
|
||
|
protocol:
|
||
|
description: The protocol.
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
serviceName:
|
||
|
description: ServiceName is the name of the service
|
||
|
type: string
|
||
|
serviceNamespace:
|
||
|
description: ServiceNamespace is the namespace of the service
|
||
|
type: string
|
||
|
sliceName:
|
||
|
description: The name of the slice.
|
||
|
type: string
|
||
|
sourceClusters:
|
||
|
description: clusterId is the id of the cluster where the service is available.
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
type: object
|
||
|
status:
|
||
|
description: WorkerServiceImportStatus defines the observed state of WorkerServiceImport
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
creationTimestamp: null
|
||
|
name: workersliceconfigs.worker.kubeslice.io
|
||
|
spec:
|
||
|
group: worker.kubeslice.io
|
||
|
names:
|
||
|
kind: WorkerSliceConfig
|
||
|
listKind: WorkerSliceConfigList
|
||
|
plural: workersliceconfigs
|
||
|
singular: workersliceconfig
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: WorkerSliceConfig is the Schema for the slice API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: WorkerSliceConfigSpec defines the desired state of Slice
|
||
|
properties:
|
||
|
externalGatewayConfig:
|
||
|
properties:
|
||
|
egress:
|
||
|
properties:
|
||
|
enabled:
|
||
|
type: boolean
|
||
|
type: object
|
||
|
gatewayType:
|
||
|
enum:
|
||
|
- none
|
||
|
- istio
|
||
|
type: string
|
||
|
ingress:
|
||
|
properties:
|
||
|
enabled:
|
||
|
type: boolean
|
||
|
type: object
|
||
|
nsIngress:
|
||
|
properties:
|
||
|
enabled:
|
||
|
type: boolean
|
||
|
type: object
|
||
|
type: object
|
||
|
ipamClusterOctet:
|
||
|
type: integer
|
||
|
namespaceIsolationProfile:
|
||
|
properties:
|
||
|
allowedNamespaces:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
applicationNamespaces:
|
||
|
items:
|
||
|
type: string
|
||
|
type: array
|
||
|
isolationEnabled:
|
||
|
default: false
|
||
|
type: boolean
|
||
|
type: object
|
||
|
qosProfileDetails:
|
||
|
description: QOSProfile is the QOS Profile configuration from backend
|
||
|
properties:
|
||
|
bandwidthCeilingKbps:
|
||
|
type: integer
|
||
|
bandwidthGuaranteedKbps:
|
||
|
type: integer
|
||
|
dscpClass:
|
||
|
enum:
|
||
|
- Default
|
||
|
- AF11
|
||
|
- AF12
|
||
|
- AF13
|
||
|
- AF21
|
||
|
- AF22
|
||
|
- AF23
|
||
|
- AF31
|
||
|
- AF32
|
||
|
- AF33
|
||
|
- AF41
|
||
|
- AF42
|
||
|
- AF43
|
||
|
- EF
|
||
|
type: string
|
||
|
priority:
|
||
|
type: integer
|
||
|
queueType:
|
||
|
default: HTB
|
||
|
type: string
|
||
|
tcType:
|
||
|
type: string
|
||
|
type: object
|
||
|
sliceGatewayProvider:
|
||
|
description: WorkerSliceGatewayProvider defines the configuration for slicegateway
|
||
|
properties:
|
||
|
sliceCaType:
|
||
|
default: Local
|
||
|
type: string
|
||
|
sliceGatewayType:
|
||
|
default: OpenVPN
|
||
|
type: string
|
||
|
type: object
|
||
|
sliceIpamType:
|
||
|
default: Local
|
||
|
type: string
|
||
|
sliceName:
|
||
|
type: string
|
||
|
sliceSubnet:
|
||
|
type: string
|
||
|
sliceType:
|
||
|
default: Application
|
||
|
type: string
|
||
|
type: object
|
||
|
status:
|
||
|
description: WorkerSliceConfigStatus defines the observed state of Slice
|
||
|
properties:
|
||
|
connectedAppPods:
|
||
|
items:
|
||
|
description: AppPod defines the app pods connected to slice
|
||
|
properties:
|
||
|
nsmInterface:
|
||
|
description: NsmInterface is the nsm interface of App
|
||
|
type: string
|
||
|
nsmIp:
|
||
|
description: NsmIP is the nsm ip of App
|
||
|
type: string
|
||
|
nsmPeerIp:
|
||
|
description: PeerIp is the nsm peer ip of gateway
|
||
|
type: string
|
||
|
podIp:
|
||
|
description: PodIP is App Pod IP
|
||
|
type: string
|
||
|
podName:
|
||
|
description: PodName is App Pod Name
|
||
|
type: string
|
||
|
podNamespace:
|
||
|
description: PodNamespace is App Pod Namespace
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
onboardedAppNamespaces:
|
||
|
items:
|
||
|
properties:
|
||
|
name:
|
||
|
type: string
|
||
|
type: object
|
||
|
type: array
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
controller-gen.kubebuilder.io/version: v0.7.0
|
||
|
creationTimestamp: null
|
||
|
name: workerslicegateways.worker.kubeslice.io
|
||
|
spec:
|
||
|
group: worker.kubeslice.io
|
||
|
names:
|
||
|
kind: WorkerSliceGateway
|
||
|
listKind: WorkerSliceGatewayList
|
||
|
plural: workerslicegateways
|
||
|
singular: workerslicegateway
|
||
|
scope: Namespaced
|
||
|
versions:
|
||
|
- name: v1alpha1
|
||
|
schema:
|
||
|
openAPIV3Schema:
|
||
|
description: WorkerSliceGateway is the Schema for the slicegateways API
|
||
|
properties:
|
||
|
apiVersion:
|
||
|
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||
|
type: string
|
||
|
kind:
|
||
|
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||
|
type: string
|
||
|
metadata:
|
||
|
type: object
|
||
|
spec:
|
||
|
description: WorkerSliceGatewaySpec defines the desired state of WorkerSliceGateway
|
||
|
properties:
|
||
|
gatewayCredentials:
|
||
|
properties:
|
||
|
secretName:
|
||
|
type: string
|
||
|
type: object
|
||
|
gatewayHostType:
|
||
|
enum:
|
||
|
- Client
|
||
|
- Server
|
||
|
type: string
|
||
|
gatewayNumber:
|
||
|
type: integer
|
||
|
gatewayType:
|
||
|
default: OpenVPN
|
||
|
type: string
|
||
|
localGatewayConfig:
|
||
|
properties:
|
||
|
clusterName:
|
||
|
type: string
|
||
|
gatewayName:
|
||
|
type: string
|
||
|
gatewaySubnet:
|
||
|
type: string
|
||
|
nodeIp:
|
||
|
type: string
|
||
|
nodePort:
|
||
|
type: integer
|
||
|
vpnIp:
|
||
|
type: string
|
||
|
type: object
|
||
|
remoteGatewayConfig:
|
||
|
properties:
|
||
|
clusterName:
|
||
|
type: string
|
||
|
gatewayName:
|
||
|
type: string
|
||
|
gatewaySubnet:
|
||
|
type: string
|
||
|
nodeIp:
|
||
|
type: string
|
||
|
nodePort:
|
||
|
type: integer
|
||
|
vpnIp:
|
||
|
type: string
|
||
|
type: object
|
||
|
sliceName:
|
||
|
type: string
|
||
|
type: object
|
||
|
status:
|
||
|
description: WorkerSliceGatewayStatus defines the observed state of WorkerSliceGateway
|
||
|
properties:
|
||
|
clusterInsertionIndex:
|
||
|
type: integer
|
||
|
gatewayNumber:
|
||
|
type: integer
|
||
|
type: object
|
||
|
type: object
|
||
|
served: true
|
||
|
storage: true
|
||
|
subresources:
|
||
|
status: {}
|
||
|
status:
|
||
|
acceptedNames:
|
||
|
kind: ""
|
||
|
plural: ""
|
||
|
conditions: []
|
||
|
storedVersions: []
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: ServiceAccount
|
||
|
metadata:
|
||
|
name: kubeslice-controller-controller-manager
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: ServiceAccount
|
||
|
metadata:
|
||
|
name: kubeslice-controller-ovpn-manager
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: Role
|
||
|
metadata:
|
||
|
name: kubeslice-controller-leader-election-role
|
||
|
namespace: kubeslice-controller
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- configmaps
|
||
|
verbs:
|
||
|
- get
|
||
|
- list
|
||
|
- watch
|
||
|
- create
|
||
|
- update
|
||
|
- patch
|
||
|
- delete
|
||
|
- apiGroups:
|
||
|
- coordination.k8s.io
|
||
|
resources:
|
||
|
- leases
|
||
|
verbs:
|
||
|
- get
|
||
|
- list
|
||
|
- watch
|
||
|
- create
|
||
|
- update
|
||
|
- patch
|
||
|
- delete
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- events
|
||
|
verbs:
|
||
|
- create
|
||
|
- patch
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRole
|
||
|
metadata:
|
||
|
creationTimestamp: null
|
||
|
name: kubeslice-controller-controller-role
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- events
|
||
|
verbs:
|
||
|
- create
|
||
|
- escalate
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- namespaces
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- escalate
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- secrets
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- escalate
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- serviceaccounts
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- batch
|
||
|
resources:
|
||
|
- jobs
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
resources:
|
||
|
- clusters
|
||
|
- projects
|
||
|
- serviceexportconfigs
|
||
|
- sliceconfigs
|
||
|
- sliceqosconfigs
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
resources:
|
||
|
- clusters/finalizers
|
||
|
- projects/finalizers
|
||
|
- serviceexportconfigs/finalizers
|
||
|
- sliceconfigs/finalizers
|
||
|
- sliceqosconfigs/finalizers
|
||
|
verbs:
|
||
|
- update
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
resources:
|
||
|
- clusters/status
|
||
|
- projects/status
|
||
|
- serviceexportconfigs/status
|
||
|
- sliceconfigs/status
|
||
|
- sliceqosconfigs/status
|
||
|
verbs:
|
||
|
- get
|
||
|
- patch
|
||
|
- update
|
||
|
- apiGroups:
|
||
|
- rbac.authorization.k8s.io
|
||
|
resources:
|
||
|
- clusterroles
|
||
|
- rolebindings
|
||
|
- roles
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
resources:
|
||
|
- workerserviceimports
|
||
|
- workersliceconfigs
|
||
|
- workerslicegateways
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
resources:
|
||
|
- workerserviceimports/finalizers
|
||
|
- workersliceconfigs/finalizers
|
||
|
- workerslicegateways/
|
||
|
verbs:
|
||
|
- update
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
resources:
|
||
|
- workerserviceimports/status
|
||
|
- workersliceconfigs/status
|
||
|
- workerslicegateways/status
|
||
|
verbs:
|
||
|
- get
|
||
|
- patch
|
||
|
- update
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRole
|
||
|
metadata:
|
||
|
name: kubeslice-controller-metrics-reader
|
||
|
rules:
|
||
|
- nonResourceURLs:
|
||
|
- /metrics
|
||
|
verbs:
|
||
|
- get
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRole
|
||
|
metadata:
|
||
|
name: kubeslice-controller-ovpn-editor-role
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
resources:
|
||
|
- workerslicegateways
|
||
|
verbs:
|
||
|
- create
|
||
|
- delete
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- namespaces
|
||
|
verbs:
|
||
|
- escalate
|
||
|
- get
|
||
|
- list
|
||
|
- patch
|
||
|
- update
|
||
|
- watch
|
||
|
- apiGroups:
|
||
|
- ""
|
||
|
resources:
|
||
|
- secrets
|
||
|
verbs:
|
||
|
- escalate
|
||
|
- get
|
||
|
- list
|
||
|
- watch
|
||
|
- update
|
||
|
- patch
|
||
|
- create
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
resources:
|
||
|
- workerslicegateways/status
|
||
|
verbs:
|
||
|
- get
|
||
|
- patch
|
||
|
- update
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRole
|
||
|
metadata:
|
||
|
name: kubeslice-controller-proxy-role
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- authentication.k8s.io
|
||
|
resources:
|
||
|
- tokenreviews
|
||
|
verbs:
|
||
|
- create
|
||
|
- apiGroups:
|
||
|
- authorization.k8s.io
|
||
|
resources:
|
||
|
- subjectaccessreviews
|
||
|
verbs:
|
||
|
- create
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: RoleBinding
|
||
|
metadata:
|
||
|
name: kubeslice-controller-leader-election-rolebinding
|
||
|
namespace: kubeslice-controller
|
||
|
roleRef:
|
||
|
apiGroup: rbac.authorization.k8s.io
|
||
|
kind: Role
|
||
|
name: kubeslice-controller-leader-election-role
|
||
|
subjects:
|
||
|
- kind: ServiceAccount
|
||
|
name: kubeslice-controller-controller-manager
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRoleBinding
|
||
|
metadata:
|
||
|
name: kubeslice-controller-controller-rolebinding
|
||
|
roleRef:
|
||
|
apiGroup: rbac.authorization.k8s.io
|
||
|
kind: ClusterRole
|
||
|
name: kubeslice-controller-controller-role
|
||
|
subjects:
|
||
|
- kind: ServiceAccount
|
||
|
name: kubeslice-controller-controller-manager
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRoleBinding
|
||
|
metadata:
|
||
|
name: kubeslice-controller-ovpn-controller-rolebinding
|
||
|
roleRef:
|
||
|
apiGroup: rbac.authorization.k8s.io
|
||
|
kind: ClusterRole
|
||
|
name: kubeslice-controller-ovpn-editor-role
|
||
|
subjects:
|
||
|
- kind: ServiceAccount
|
||
|
name: kubeslice-controller-ovpn-manager
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||
|
kind: ClusterRoleBinding
|
||
|
metadata:
|
||
|
name: kubeslice-controller-proxy-rolebinding
|
||
|
roleRef:
|
||
|
apiGroup: rbac.authorization.k8s.io
|
||
|
kind: ClusterRole
|
||
|
name: kubeslice-controller-proxy-role
|
||
|
subjects:
|
||
|
- kind: ServiceAccount
|
||
|
name: kubeslice-controller-controller-manager
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
data:
|
||
|
controller_manager_config.yaml: |
|
||
|
apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
|
||
|
kind: ControllerManagerConfig
|
||
|
health:
|
||
|
healthProbeBindAddress: :8081
|
||
|
metrics:
|
||
|
bindAddress: 127.0.0.1:8080
|
||
|
webhook:
|
||
|
port: 9443
|
||
|
leaderElection:
|
||
|
leaderElect: true
|
||
|
resourceName: d7f43c17.kubeslice.io
|
||
|
kind: ConfigMap
|
||
|
metadata:
|
||
|
name: kubeslice-controller-manager-config
|
||
|
namespace: kubeslice-controller
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: Service
|
||
|
metadata:
|
||
|
labels:
|
||
|
control-plane: controller-manager
|
||
|
name: kubeslice-controller-controller-manager-metrics-service
|
||
|
namespace: kubeslice-controller
|
||
|
spec:
|
||
|
ports:
|
||
|
- name: https
|
||
|
port: 8443
|
||
|
protocol: TCP
|
||
|
targetPort: https
|
||
|
selector:
|
||
|
control-plane: controller-manager
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: Service
|
||
|
metadata:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
spec:
|
||
|
ports:
|
||
|
- port: 443
|
||
|
protocol: TCP
|
||
|
targetPort: 9443
|
||
|
selector:
|
||
|
control-plane: controller-manager
|
||
|
---
|
||
|
apiVersion: apps/v1
|
||
|
kind: Deployment
|
||
|
metadata:
|
||
|
labels:
|
||
|
control-plane: controller-manager
|
||
|
name: kubeslice-controller-manager
|
||
|
namespace: kubeslice-controller
|
||
|
spec:
|
||
|
replicas: 1
|
||
|
selector:
|
||
|
matchLabels:
|
||
|
control-plane: controller-manager
|
||
|
template:
|
||
|
metadata:
|
||
|
annotations:
|
||
|
kubectl.kubernetes.io/default-container: manager
|
||
|
labels:
|
||
|
control-plane: controller-manager
|
||
|
spec:
|
||
|
containers:
|
||
|
- args:
|
||
|
- --secure-listen-address=0.0.0.0:8443
|
||
|
- --upstream=http://127.0.0.1:8080/
|
||
|
- --logtostderr=true
|
||
|
- --v=10
|
||
|
image: '{{ .Values.kubeslice.rbacproxy.image }}:{{ .Values.kubeslice.rbacproxy.tag }}'
|
||
|
name: kube-rbac-proxy
|
||
|
ports:
|
||
|
- containerPort: 8443
|
||
|
name: https
|
||
|
protocol: TCP
|
||
|
- args:
|
||
|
- --health-probe-bind-address=:8081
|
||
|
- --metrics-bind-address=127.0.0.1:8080
|
||
|
- --leader-elect
|
||
|
- --log-level={{ required "A valid value is required!" .Values.kubeslice.controller.logLevel }}
|
||
|
- --rbac-resource-prefix={{ required "A valid value is required!" .Values.kubeslice.controller.rbacResourcePrefix }}
|
||
|
- --project-namespace-prefix={{ required "A valid value is required!" .Values.kubeslice.controller.projectnsPrefix }}
|
||
|
- --controller-end-point={{ required "A valid value is required!" .Values.kubeslice.controller.endpoint }}
|
||
|
- --ovpn-job-image={{ .Values.kubeslice.ovpnJob.image }}:{{ .Values.kubeslice.ovpnJob.tag }}
|
||
|
command:
|
||
|
- /manager
|
||
|
env:
|
||
|
- name: KUBESLICE_CONTROLLER_MANAGER_NAMESPACE
|
||
|
valueFrom:
|
||
|
fieldRef:
|
||
|
fieldPath: metadata.namespace
|
||
|
image: '{{ .Values.kubeslice.controller.image }}:{{ .Values.kubeslice.controller.tag }}'
|
||
|
imagePullPolicy: '{{ .Values.kubeslice.controller.pullPolicy }}'
|
||
|
livenessProbe:
|
||
|
httpGet:
|
||
|
path: /healthz
|
||
|
port: 8081
|
||
|
initialDelaySeconds: 15
|
||
|
periodSeconds: 20
|
||
|
name: manager
|
||
|
ports:
|
||
|
- containerPort: 9443
|
||
|
name: webhook-server
|
||
|
protocol: TCP
|
||
|
readinessProbe:
|
||
|
httpGet:
|
||
|
path: /readyz
|
||
|
port: 8081
|
||
|
initialDelaySeconds: 5
|
||
|
periodSeconds: 10
|
||
|
resources:
|
||
|
limits:
|
||
|
cpu: 500m
|
||
|
memory: 128Mi
|
||
|
requests:
|
||
|
cpu: 10m
|
||
|
memory: 64Mi
|
||
|
securityContext:
|
||
|
allowPrivilegeEscalation: false
|
||
|
volumeMounts:
|
||
|
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||
|
name: cert
|
||
|
readOnly: true
|
||
|
securityContext:
|
||
|
runAsNonRoot: true
|
||
|
serviceAccountName: kubeslice-controller-controller-manager
|
||
|
terminationGracePeriodSeconds: 10
|
||
|
volumes:
|
||
|
- name: cert
|
||
|
secret:
|
||
|
defaultMode: 420
|
||
|
secretName: webhook-server-cert
|
||
|
{{- if and .Values.imagePullSecrets .Values.imagePullSecrets.repository .Values.imagePullSecrets.username .Values.imagePullSecrets.password }}
|
||
|
imagePullSecrets:
|
||
|
- name: kubeslice-image-pull-secret
|
||
|
{{- end }}
|
||
|
---
|
||
|
apiVersion: cert-manager.io/v1
|
||
|
kind: Certificate
|
||
|
metadata:
|
||
|
name: kubeslice-controller-serving-cert
|
||
|
namespace: kubeslice-controller
|
||
|
spec:
|
||
|
dnsNames:
|
||
|
- kubeslice-controller-webhook-service.kubeslice-controller.svc
|
||
|
- kubeslice-controller-webhook-service.kubeslice-controller.svc.cluster.local
|
||
|
issuerRef:
|
||
|
kind: Issuer
|
||
|
name: kubeslice-controller-selfsigned-issuer
|
||
|
secretName: webhook-server-cert
|
||
|
---
|
||
|
apiVersion: cert-manager.io/v1
|
||
|
kind: Issuer
|
||
|
metadata:
|
||
|
name: kubeslice-controller-selfsigned-issuer
|
||
|
namespace: kubeslice-controller
|
||
|
spec:
|
||
|
selfSigned: {}
|
||
|
---
|
||
|
apiVersion: admissionregistration.k8s.io/v1
|
||
|
kind: MutatingWebhookConfiguration
|
||
|
metadata:
|
||
|
annotations:
|
||
|
cert-manager.io/inject-ca-from: kubeslice-controller/kubeslice-controller-serving-cert
|
||
|
name: kubeslice-controller-mutating-webhook-configuration
|
||
|
webhooks:
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-controller-kubeslice-io-v1alpha1-cluster
|
||
|
failurePolicy: Fail
|
||
|
name: mcluster.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- clusters
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-controller-kubeslice-io-v1alpha1-project
|
||
|
failurePolicy: Fail
|
||
|
name: mproject.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- projects
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-controller-kubeslice-io-v1alpha1-serviceexportconfig
|
||
|
failurePolicy: Fail
|
||
|
name: mserviceexportconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- serviceexportconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-controller-kubeslice-io-v1alpha1-sliceconfig
|
||
|
failurePolicy: Fail
|
||
|
name: msliceconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- sliceconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-controller-kubeslice-io-v1alpha1-sliceqosconfig
|
||
|
failurePolicy: Fail
|
||
|
name: msliceqosconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- sliceqosconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-worker-kubeslice-io-v1alpha1-workersliceconfig
|
||
|
failurePolicy: Fail
|
||
|
name: mworkersliceconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- workersliceconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /mutate-worker-kubeslice-io-v1alpha1-workerslicegateway
|
||
|
failurePolicy: Fail
|
||
|
name: mworkerslicegateway.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- workerslicegateways
|
||
|
sideEffects: None
|
||
|
---
|
||
|
apiVersion: admissionregistration.k8s.io/v1
|
||
|
kind: ValidatingWebhookConfiguration
|
||
|
metadata:
|
||
|
annotations:
|
||
|
cert-manager.io/inject-ca-from: kubeslice-controller/kubeslice-controller-serving-cert
|
||
|
name: kubeslice-controller-validating-webhook-configuration
|
||
|
webhooks:
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-controller-kubeslice-io-v1alpha1-cluster
|
||
|
failurePolicy: Fail
|
||
|
name: vcluster.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
- DELETE
|
||
|
resources:
|
||
|
- clusters
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-controller-kubeslice-io-v1alpha1-project
|
||
|
failurePolicy: Fail
|
||
|
name: vproject.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
- DELETE
|
||
|
resources:
|
||
|
- projects
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-controller-kubeslice-io-v1alpha1-serviceexportconfig
|
||
|
failurePolicy: Fail
|
||
|
name: vserviceexportconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- serviceexportconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-controller-kubeslice-io-v1alpha1-sliceconfig
|
||
|
failurePolicy: Fail
|
||
|
name: vsliceconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
- DELETE
|
||
|
resources:
|
||
|
- sliceconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-controller-kubeslice-io-v1alpha1-sliceqosconfig
|
||
|
failurePolicy: Fail
|
||
|
name: vsliceqosconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- controller.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
- DELETE
|
||
|
resources:
|
||
|
- sliceqosconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-worker-kubeslice-io-v1alpha1-workersliceconfig
|
||
|
failurePolicy: Fail
|
||
|
name: vworkersliceconfig.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- workersliceconfigs
|
||
|
sideEffects: None
|
||
|
- admissionReviewVersions:
|
||
|
- v1
|
||
|
clientConfig:
|
||
|
service:
|
||
|
name: kubeslice-controller-webhook-service
|
||
|
namespace: kubeslice-controller
|
||
|
path: /validate-worker-kubeslice-io-v1alpha1-workerslicegateway
|
||
|
failurePolicy: Fail
|
||
|
name: vworkerslicegateway.kb.io
|
||
|
rules:
|
||
|
- apiGroups:
|
||
|
- worker.kubeslice.io
|
||
|
apiVersions:
|
||
|
- v1alpha1
|
||
|
operations:
|
||
|
- CREATE
|
||
|
- UPDATE
|
||
|
resources:
|
||
|
- workerslicegateways
|
||
|
sideEffects: None
|