rancher-partner-charts/charts/avesha/kubeslice-worker/templates/upgrade-crds.yaml

1430 lines
69 KiB
YAML

apiVersion: v1
kind: ServiceAccount
metadata:
name: kubeslice-install-crds
namespace: kubeslice-system
labels:
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
annotations:
"helm.sh/hook": pre-install,pre-upgrade,pre-rollback
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
"helm.sh/hook-weight": "1"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubeslice-install-crds
annotations:
"helm.sh/hook": pre-install,pre-upgrade,pre-rollback
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
"helm.sh/hook-weight": "1"
labels:
app.kubernetes.io/name: kubeslice
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubeslice-install-crds
subjects:
- kind: ServiceAccount
name: kubeslice-install-crds
namespace: kubeslice-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kubeslice-install-crds
annotations:
"helm.sh/hook": pre-install,pre-upgrade,pre-rollback
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
"helm.sh/hook-weight": "1"
labels:
app.kubernetes.io/name: kubeslice
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
rules:
- apiGroups:
- "apiextensions.k8s.io"
resources:
- customresourcedefinitions
verbs:
- get
- list
- patch
- update
- create
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kubeslice-install-crds
annotations:
"helm.sh/hook": pre-install,pre-upgrade,pre-rollback
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
"helm.sh/hook-weight": "1"
labels:
app.kubernetes.io/name: kubeslice
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
crds.yaml: |
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.7.0
creationTimestamp: null
name: sliceresourcequotas.networking.kubeslice.io
spec:
group: networking.kubeslice.io
names:
kind: SliceResourceQuota
listKind: SliceResourceQuotaList
plural: sliceresourcequotas
singular: sliceresourcequota
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: SliceResourceQuota is the Schema for the sliceresourcequota 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:
type: object
status:
properties:
clusterName:
description: ClusterName defines the name of the cluster for the ResourceQuota
type: string
configUpdatedOn:
format: int64
type: integer
resourceQuotaProfile:
description: ResourceQuotaProfile defines the resource quota profile
for the slice
properties:
clusterQuota:
description: ClusterQuota defines the configuration for cluster
quota of a resource quota
properties:
namespaceQuota:
description: NamespaceQuota defines the configuration for
namespace quota of a ClusterQuota
items:
description: NamespaceQuota defines the configuration for
namespace quota of a ClusterQuota
properties:
enforceQuota:
default: false
description: EnforceQuota defines the enforceQuota status
flag for NamespaceQuota
type: boolean
namespace:
description: Namespace defines the namespace of the
NamespaceQuota
type: string
resources:
description: Resources defines the configuration for
resources for NamespaceQuota
properties:
defaultLimitPerContainer:
description: DefaultResourcePerContainerList is
a set of (resource name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral
storage, in bytes. (500Gi = 500GiB = 500 *
1024 * 1024 * 1024) The resource name for
EphemeralStorage is alpha, and it can change
across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB
= 500 * 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
defaultRequestPerContainer:
description: DefaultRequestPerContainer is a set
of (resource name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage LoNamespaceResourceQuotaStatuscal
ephemeral storage, in bytes. (500Gi = 500GiB
= 500 * 1024 * 1024 * 1024) The resource name
for EphemeralStorage is alpha, and it can
change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB
= 500 * 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
limit:
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral
storage, in bytes. (500Gi = 500GiB = 500 *
1024 * 1024 * 1024) The resource name for
EphemeralStorage is alpha, and it can change
across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB
= 500 * 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podCount:
description: PodCount in number.
format: int64
type: integer
type: object
request:
description: RequestResourceList is a set of (resource
name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral
storage, in bytes. (500Gi = 500GiB = 500 *
1024 * 1024 * 1024) The resource name for
EphemeralStorage is alpha, and it can change
across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB
= 500 * 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
type: object
type: array
resources:
description: Resources defines the configuration for resources
for ClusterQuota
properties:
limit:
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 *
1024) The resource name for EphemeralStorage is
alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500
* 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podCount:
description: PodCount in number.
format: int64
type: integer
type: object
request:
description: RequestResourceList is a set of (resource
name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 *
1024) The resource name for EphemeralStorage is
alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500
* 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
type: object
sliceQuota:
description: SliceQuota defines the configuration for slice quota
of a resource quota
properties:
resources:
description: Resources defines the configuration for resources
for SliceQuota
properties:
defaultRequestPerContainer:
description: DefaultRequestPerContainer is a set of (resource
name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage LoNamespaceResourceQuotaStatuscal
ephemeral storage, in bytes. (500Gi = 500GiB = 500
* 1024 * 1024 * 1024) The resource name for EphemeralStorage
is alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500
* 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
limit:
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 *
1024) The resource name for EphemeralStorage is
alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500
* 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podCount:
description: PodCount in number.
format: int64
type: integer
type: object
request:
description: RequestResourceList is a set of (resource
name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 *
1024) The resource name for EphemeralStorage is
alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500
* 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
type: object
type: object
sliceName:
description: SliceName defines the name of the slice for the ResourceQuota
type: string
sliceResourceQuotaStatus:
description: WorkerSliceResourceQuotaStatus defines the observed state
of WorkerSliceResourceQuota
properties:
clusterResourceQuotaStatus:
properties:
namespaceResourceQuotaStatus:
items:
properties:
namespace:
type: string
requestResourceUsage:
description: RequestResourceList is a set of (resource
name, quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024
* 1024) The resource name for EphemeralStorage
is alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB =
500 * 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
resourceUsage:
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024
* 1024) The resource name for EphemeralStorage
is alpha, and it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB =
500 * 1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podCount:
description: PodCount in number.
format: int64
type: integer
type: object
type: object
type: array
requestResourceUsage:
description: RequestResourceList is a set of (resource name,
quantity) pairs.
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
The resource name for EphemeralStorage is alpha, and
it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500 *
1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
resourceUsage:
properties:
cpu:
anyOf:
- type: integer
- type: string
description: CPU in cores. (500m = .5 cores)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
ephemeralStorage:
anyOf:
- type: integer
- type: string
description: EphemeralStorage Local ephemeral storage,
in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
The resource name for EphemeralStorage is alpha, and
it can change across releases.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
description: Memory in bytes. (500Gi = 500GiB = 500 *
1024 * 1024 * 1024)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podCount:
description: PodCount in number.
format: int64
type: integer
type: object
type: object
type: object
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: serviceexports.networking.kubeslice.io
spec:
group: networking.kubeslice.io
names:
kind: ServiceExport
listKind: ServiceExportList
plural: serviceexports
shortNames:
- svcex
singular: serviceexport
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.slice
name: Slice
type: string
- jsonPath: .spec.ingressEnabled
name: Ingress
type: boolean
- jsonPath: .status.exposedPorts
name: Port(s)
type: string
- jsonPath: .status.availableEndpoints
name: Endpoints
type: integer
- jsonPath: .status.exportStatus
name: Status
type: string
- jsonPath: .spec.aliases
name: Alias
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: ServiceExport is the Schema for the serviceexports 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: ServiceExportSpec defines the desired state of ServiceExport
properties:
aliases:
description: Alias names for the exported service. The service could
be addressed by the alias names in addition to the slice.local name.
items:
type: string
type: array
ingressEnabled:
description: IngressEnabled denotes whether the traffic should be
proxied through an ingress gateway
type: boolean
ports:
description: Ports which should be exposed through the service
items:
description: ServicePort is the port exposed by ServicePod
properties:
containerPort:
description: Port number exposed from the container
format: int32
type: integer
name:
description: Name of the port
type: string
protocol:
default: TCP
description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults
to "TCP".
type: string
required:
- containerPort
type: object
type: array
selector:
description: Selector is a label query over pods that should be exposed
as a service
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that
contains values, a key, and an operator that relates the key
and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to
a set of values. Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of string values. If the
operator is In or NotIn, the values array must be non-empty.
If the operator is Exists or DoesNotExist, the values
array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator
is "In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
slice:
description: Slice denotes the slice which the app is part of
type: string
required:
- ports
- selector
- slice
type: object
status:
description: ServiceExportStatus defines the observed state of ServiceExport
properties:
aliases:
description: Alias names for the exported service. The service could
be addressed by the alias names in addition to the slice.local name.
items:
type: string
type: array
availableEndpoints:
description: AvailableEndpoints shows the number of available endpoints
type: integer
dnsName:
description: DNSName is the FQDN to reach the service
type: string
exportStatus:
description: ExportStatus denotes the export status of the service
type: string
exposedPorts:
description: ExposedPorts shows a one line representation of ports
and protocols exposed only used to show as a printercolumn
type: string
ingressGwEnabled:
description: IngressGwEnabled denotes ingress gw is enabled for the
serviceexport
type: boolean
ingressGwPod:
description: IngressGwPod contains ingress gateway pod info
properties:
name:
description: Name of the pod
type: string
nsmIp:
description: NsmIP of the pod which is reachable within slice
type: string
required:
- name
type: object
lastSync:
description: Last sync time with backend
format: int64
type: integer
pods:
description: Pods denotes the service endpoint pods
items:
description: ServicePod contains pod information which offers a
service
properties:
dnsName:
description: DNSName is the dns A record name for the pod
type: string
name:
description: Name of the pod
type: string
nsmIp:
description: NsmIP of the pod which is reachable within slice
type: string
podIp:
description: PodIp of the pod which is reachable within cluster
type: string
required:
- dnsName
- name
- podIp
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: serviceimports.networking.kubeslice.io
spec:
group: networking.kubeslice.io
names:
kind: ServiceImport
listKind: ServiceImportList
plural: serviceimports
shortNames:
- svcim
singular: serviceimport
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.slice
name: Slice
type: string
- jsonPath: .status.exposedPorts
name: Port(s)
type: string
- jsonPath: .status.availableEndpoints
name: Endpoints
type: integer
- jsonPath: .status.importStatus
name: Status
type: string
- jsonPath: .spec.aliases
name: Alias
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: ServiceImport is the Schema for the serviceimports 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: ServiceImportSpec defines the desired state of ServiceImport
properties:
aliases:
description: Alias names for the exported service. The service could
be addressed by the alias names in addition to the slice.local name.
items:
type: string
type: array
dnsName:
description: DNSName shows the FQDN to reach the service
type: string
ports:
description: Ports which should be exposed through the service
items:
description: ServicePort is the port exposed by ServicePod
properties:
containerPort:
description: Port number exposed from the container
format: int32
type: integer
name:
description: Name of the port
type: string
protocol:
default: TCP
description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults
to "TCP".
type: string
required:
- containerPort
type: object
type: array
slice:
description: Slice denotes the slice which the app is part of
type: string
required:
- dnsName
- ports
- slice
type: object
status:
description: ServiceImportStatus defines the observed state of ServiceImport
properties:
availableEndpoints:
description: AvailableEndpoints shows the number of available endpoints
type: integer
endpoints:
description: Endpoints which provide the service
items:
description: ServiceEndpoint contains details of a single endpoint
which offers a particular service
properties:
clusterId:
description: ClusterID which the endpoint belongs to
type: string
dnsName:
description: DNSName
type: string
ip:
description: IP of the pod which is reachable within slice
type: string
name:
description: Name of the endpoint
type: string
port:
description: Port to reach the endpoint
format: int32
type: integer
required:
- clusterId
- dnsName
- ip
- port
type: object
type: array
exposedPorts:
description: ExposedPorts shows a one line representation of ports
and protocols exposed only used to show as a printercolumn
type: string
importStatus:
description: ImportStatus denotes the status of the imported service
type: string
lastSync:
description: Last sync time with backend
format: int64
type: integer
updatedOn:
description: Used to match if the service is updated from backend
format: int64
type: integer
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: slicegateways.networking.kubeslice.io
spec:
group: networking.kubeslice.io
names:
kind: SliceGateway
listKind: SliceGatewayList
plural: slicegateways
shortNames:
- gw
- slicegw
singular: slicegateway
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.config.sliceGatewaySubnet
name: Subnet
type: string
- jsonPath: .status.config.sliceGatewayRemoteSubnet
name: Remote Subnet
type: string
- jsonPath: .status.config.sliceGatewayRemoteClusterId
name: Remote Cluster
type: string
- jsonPath: .status.config.sliceGatewayStatus
name: GW Status
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: SliceGateway 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: SliceGatewaySpec defines the desired state of SliceGateway
properties:
siteName:
description: SiteName is site name
type: string
sliceName:
description: SliceName is the Name of the slice this gateway is attached
into
type: string
type: object
status:
description: SliceGatewayStatus defines the observed state of SliceGateway
properties:
config:
description: SliceGatewayConfig defines the config received from backend
properties:
sliceGatewayHostType:
description: 'Host Type : server or client'
type: string
sliceGatewayId:
description: UUID of the slice gateway.
type: string
sliceGatewayLocalVpnIp:
description: Local VPN IP
type: string
sliceGatewayName:
description: Slice Gateway Name
type: string
sliceGatewayNodePorts:
description: Node port
items:
type: integer
type: array
sliceGatewayRemoteClusterId:
description: Remote Cluster ID
type: string
sliceGatewayRemoteGatewayId:
description: Remote Gateway ID
type: string
sliceGatewayRemoteNodeIps:
description: Remote Node IPs
items:
type: string
type: array
sliceGatewayRemoteNodePorts:
description: Remote Node Port
items:
type: integer
type: array
sliceGatewayRemoteSubnet:
description: Remote Node Subnet
type: string
sliceGatewayRemoteVpnIp:
description: Remote VPN IP
type: string
sliceGatewayStatus:
description: SliceGateway status
type: string
sliceGatewaySubnet:
description: Slice gateway subnet range.
type: string
sliceName:
description: Name of the slice.
type: string
sliceSiteName:
description: Slice gateway subnet range.
type: string
type: object
configUpdatedOn:
description: ConfigUpdatedOn is the time when Config updated from
backend
format: int64
type: integer
connectionContextUpdatedOn:
description: ConnectionContextUpdated is the time when context updated
in pod
format: int64
type: integer
gatewayPodStatus:
description: gatewayPodStatus is a list that consists of status of
individual gatewaypods
items:
properties:
localNsmIP:
type: string
peerPodName:
type: string
podIP:
type: string
podName:
type: string
routeRemoved:
format: int32
type: integer
tunnelStatus:
properties:
IntfName:
type: string
Latency:
format: int64
type: integer
LocalIP:
type: string
PacketLoss:
format: int64
type: integer
RemoteIP:
type: string
RxRate:
format: int64
type: integer
Status:
format: int32
type: integer
TxRate:
format: int64
type: integer
type: object
type: object
type: array
peerIp:
description: PeerIP is the gateway tunnel peer ip
type: string
podIps:
description: PodIPs is the list of Ip of the gateway pods running
in cluster
items:
type: string
type: array
podName:
description: Deprecated PodName is the name of the gateway pod running
in cluster
type: string
podNames:
description: PodNames is the list of names of the gateway pods running
in cluster
items:
type: string
type: array
podStatus:
description: PodStatus shows whether gateway pod is healthy
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:
controller-gen.kubebuilder.io/version: v0.7.0
creationTimestamp: null
name: slices.networking.kubeslice.io
spec:
group: networking.kubeslice.io
names:
kind: Slice
listKind: SliceList
plural: slices
singular: slice
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
description: Slice is the Schema for the slices 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: SliceSpec defines the desired state of Slice
type: object
status:
description: SliceStatus defines the observed state of Slice
properties:
allowedNamespaces:
description: Slice Allowed Namespace list
items:
type: string
type: array
appPods:
description: AppPods contains the list of app pods connected to the
slice
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
appPodsUpdatedOn:
description: AppPodsUpdatedOn is the time when app pods list was updated
format: int64
type: integer
applicationNamespaces:
description: Slice Application Namespace list
items:
type: string
type: array
dnsIP:
description: DNSIP is the IP of Coredns server
type: string
networkPoliciesInstalled:
default: false
description: NetworkPoliciesInstalled defines whether the netpol are
installed in atleast one applicationNamespace
type: boolean
sliceConfig:
description: SliceConfig is the spec for slice received from hub cluster
properties:
clusterSubnetCIDR:
description: ClusterSubnetCIDR is the subnet to be used by the
current cluster
type: string
externalGatewayConfig:
description: ExternalGatewayConfig determines istio ingress/egress
configuration
properties:
egress:
properties:
enabled:
type: boolean
type: object
gatewayType:
type: string
ingress:
properties:
enabled:
type: boolean
type: object
nsIngress:
properties:
enabled:
type: boolean
type: object
type: object
namespaceIsolationProfile:
description: Namespace Isolation profile contains fields related
to namespace binding to slice
properties:
allowedNamespaces:
description: Allowed namespaces is a list of namespaces that
can send and receive traffic to app namespaces
items:
type: string
type: array
applicationNamespaces:
description: Application namespaces is a list of namespaces
that are bound to the slice
items:
type: string
type: array
isolationEnabled:
default: false
description: Enable Namespace Isolation in the slice
type: boolean
type: object
qosProfileDetails:
description: QOS profile details
properties:
bandwidthCeilingKbps:
description: Bandwidth Ceiling eg:5000
type: integer
bandwidthGuaranteedKbps:
description: Bandwidth Guaranteed eg:4000
type: integer
dscpClass:
description: DSCP code for inter cluster traffic
type: string
priority:
description: Priority 0-3
type: integer
queueType:
description: Queue Type
type: string
tcType:
description: TC type
type: string
type: object
sliceDisplayName:
description: display name of the slice.
type: string
sliceId:
description: UUID of the slice.
type: string
sliceIpam:
description: IPAM configuration for the slice
properties:
ipamClusterOctet:
description: Cluster specific octet for IPAM root subnet
type: integer
sliceIpamType:
description: IPAM Type for slice
type: string
required:
- sliceIpamType
type: object
sliceSubnet:
description: IP subnet range of the slice.
type: string
sliceType:
description: Type of the slice.
type: string
required:
- qosProfileDetails
- sliceDisplayName
- sliceId
- sliceIpam
- sliceSubnet
- sliceType
type: object
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: batch/v1
kind: Job
metadata:
name: kubeslice-install-crds
namespace: kubeslice-system
annotations:
"helm.sh/hook": pre-install,pre-upgrade,pre-rollback
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
"helm.sh/hook-weight": "2"
labels:
app.kubernetes.io/name: kubeslice
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
backoffLimit: 3
template:
metadata:
name: kubeslice-install-crds
spec:
serviceAccountName: kubeslice-install-crds
containers:
- name: kubectl
image: "alpine/k8s:1.22.9"
command:
- /bin/sh
- -c
- kubectl apply -f /tmp/crds.yaml
volumeMounts:
- mountPath: /tmp
name: crds
volumes:
- name: crds
configMap:
name: kubeslice-install-crds
items:
- key: "crds.yaml"
path: "crds.yaml"
restartPolicy: OnFailure