mirror of
https://github.com/kubevela/kubevela.git
synced 2026-02-14 10:00:06 +00:00
Some checks failed
Webhook Upgrade Validation / webhook-upgrade-check (push) Failing after 24s
* chore: updates culenag version and syntax across all files Signed-off-by: Amit Singh <singhamitch@outlook.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * debuggin: reverts tf provider changes Signed-off-by: Amit Singh <singhamitch@outlook.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * Refactor: Simplify provider configuration by removing 'providerBasic' and directly defining access keys and region for providers Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * Refactor: Consolidate provider configuration by introducing 'providerBasic' for access keys and region Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * chore: reorganize import statements in deepcopy files for consistency Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * chore: reorder import statements for consistency across deepcopy files Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * Refactor: Safely handle pattern parameter selectors to avoid panics in GetParameters and getStatusMap Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * chore: add comment to clarify test context in definition_revision_test.go Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * chore: remove redundant comment from test context initialization in definition_revision_test.go Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * Refactor: Introduce GetSelectorLabel function to safely extract labels from CUE selectors Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * chore: add newline at end of file in utils.go Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * chore: increase timeout for multi-cluster e2e Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> --------- Signed-off-by: Amit Singh <singhamitch@outlook.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Co-authored-by: Amit Singh <singhamitch@outlook.com> Co-authored-by: Ayush Kumar <ayushshyamkumar888@gmail.com>
124 lines
4.1 KiB
YAML
124 lines
4.1 KiB
YAML
# Code generated by KubeVela templates. DO NOT EDIT. Please edit the original cue file.
|
|
# Definition source cue file: vela-templates/definitions/internal/expose.cue
|
|
apiVersion: core.oam.dev/v1beta1
|
|
kind: TraitDefinition
|
|
metadata:
|
|
annotations:
|
|
definition.oam.dev/description: Expose port to enable web traffic for your component.
|
|
name: expose
|
|
namespace: {{ include "systemDefinitionNamespace" . }}
|
|
spec:
|
|
appliesToWorkloads:
|
|
- deployments.apps
|
|
- statefulsets.apps
|
|
podDisruptive: false
|
|
schematic:
|
|
cue:
|
|
template: |
|
|
import "strconv"
|
|
import "strings"
|
|
|
|
outputs: service: {
|
|
apiVersion: "v1"
|
|
kind: "Service"
|
|
metadata: name: context.name
|
|
metadata: annotations: parameter.annotations
|
|
spec: {
|
|
if parameter["matchLabels"] == _|_ {
|
|
selector: "app.oam.dev/component": context.name
|
|
}
|
|
if parameter["matchLabels"] != _|_ {
|
|
selector: parameter["matchLabels"]
|
|
}
|
|
|
|
// compatible with the old way
|
|
if parameter["port"] != _|_ if parameter["ports"] == _|_ {
|
|
ports: [
|
|
for p in parameter.port {
|
|
name: "port-" + strconv.FormatInt(p, 10)
|
|
port: p
|
|
targetPort: p
|
|
},
|
|
]
|
|
}
|
|
if parameter["ports"] != _|_ {
|
|
ports: [for v in parameter.ports {
|
|
port: v.port
|
|
targetPort: v.port
|
|
if v.name != _|_ {
|
|
name: v.name
|
|
}
|
|
if v.name == _|_ {
|
|
_name: "port-" + strconv.FormatInt(v.port, 10)
|
|
name: *_name | string
|
|
if v.protocol != "TCP" {
|
|
name: _name + "-" + strings.ToLower(v.protocol)
|
|
}
|
|
}
|
|
if v.nodePort != _|_ if parameter.type == "NodePort" {
|
|
nodePort: v.nodePort
|
|
}
|
|
if v.protocol != _|_ {
|
|
protocol: v.protocol
|
|
}
|
|
},
|
|
]
|
|
}
|
|
type: parameter.type
|
|
}
|
|
}
|
|
parameter: {
|
|
// +usage=Deprecated, the old way to specify the exposion ports
|
|
port?: [...int]
|
|
|
|
// +usage=Specify portsyou want customer traffic sent to
|
|
ports?: [...{
|
|
// +usage=Number of port to expose on the pod's IP address
|
|
port: int
|
|
// +usage=Name of the port
|
|
name?: string
|
|
// +usage=Protocol for port. Must be UDP, TCP, or SCTP
|
|
protocol: *"TCP" | "UDP" | "SCTP"
|
|
// +usage=exposed node port. Only Valid when exposeType is NodePort
|
|
nodePort?: int
|
|
}]
|
|
|
|
// +usage=Specify the annotations of the exposed service
|
|
annotations: [string]: string
|
|
|
|
matchLabels?: [string]: string
|
|
|
|
// +usage=Specify what kind of Service you want. options: "ClusterIP","NodePort","LoadBalancer","ExternalName"
|
|
type: *"ClusterIP" | "NodePort" | "LoadBalancer" | "ExternalName"
|
|
}
|
|
stage: PostDispatch
|
|
status:
|
|
customStatus: |-
|
|
service: context.outputs.service
|
|
message: *"" | string
|
|
if service.spec.type == "ClusterIP" {
|
|
message: "ClusterIP: \(service.spec.clusterIP)"
|
|
}
|
|
if service.spec.type == "LoadBalancer" {
|
|
status: service.status
|
|
isHealth: *false | bool
|
|
message: *"ExternalIP: Pending" | string
|
|
if status != _|_ if status.loadBalancer != _|_ if status.loadBalancer.ingress != _|_ if len(status.loadBalancer.ingress) > 0 if status.loadBalancer.ingress[0].ip != _|_ {
|
|
isHealth: true
|
|
message: "ExternalIP: \(status.loadBalancer.ingress[0].ip)"
|
|
}
|
|
}
|
|
healthPolicy: |-
|
|
service: context.outputs.service
|
|
if service.spec.type == "LoadBalancer" {
|
|
status: service.status
|
|
isHealth: *false | bool
|
|
if status != _|_ if status.loadBalancer != _|_ if status.loadBalancer.ingress != _|_ if len(status.loadBalancer.ingress) > 0 if status.loadBalancer.ingress[0].ip != _|_ {
|
|
isHealth: true
|
|
}
|
|
}
|
|
if service.spec.type != "LoadBalancer" {
|
|
isHealth: true
|
|
}
|
|
|