CCE.Service
Element Description
The CCE.Service element is used to deploy a Kubernetes resource object Service at the PaaS layer of HUAWEI CLOUD. By creating such an object, you can provide a unified entry address for a group of containerized applications with the same functions, and distribute requests in load balancing mode to backend containerized applications.
Element Properties
Property |
Required |
Descripiton |
---|---|---|
k8sManifest |
Yes |
Description file of the Kubernetes service Type: dict Value Description: Supports customization. You are not advised to change the name and labels under the metadata during an update. Suggestion: For details, see the Kubernetes official guide at https://kubernetes.io/docs/concepts/services-networking/service. |
clusterId |
No |
ID of the cluster to which the resource belongs Type: HuaweiCloud.CCE.Cluster.Id Value Description: Indicates the ID of an existing or new container cluster. Value Constraint: The value must satisfy the UUID rule and support a maximum of 64 characters. Suggestion: Connect to the cluster object and use the get_reference function to obtain the cluster ID. Leave it blank, and specify the ID on the AOS console when creating a stack. Enter the cluster ID. Specifically, log in to the CCE console, and choose Resource Management > Clusters. Click the target cluster, and you can then obtain its cluster ID. |
namespace |
No |
Namespace of the cluster to which the resource belongs Type: string Value Description: Must be a valid namespace in the cluster, for example, default. If k8sManifest is defined, the namespace specified here will be overwritten by the namespace specified in k8sManifest (k8sManifest > metadata > namespace). Value Constraint: The value must start with a letter. Only lowercase letters, digits, and hyphens (-) are allowed. Suggestion: Customize the value based on the existing cluster or the cluster to be created. |
Relationships Between Elements
Description |
Target |
---|---|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
ContainedIn |
|
Connected |
Relationship between CCE.Service and ULB.LoadBalancer:
- When compiling the service.yaml file, add kubernetes.io/elb.class: union to the annotations section in the metadata.
- loadBalancerIP in spec must be set to the private IP address of ULB, which can be obtained using get_attribute, for example, loadBalancerIP: {get_attribute:[ULB.LoadBalancer element name, vip_address]}.
For details about how to create a service using a load balancer, see .
Return Value
Property |
Type |
Description |
---|---|---|
IP |
Array |
ExternalIPs or LoadBalancerIP Value of a k8s service |
Port |
Array |
NodePort Value of a k8s service |
refName |
string |
Name of a k8s service |
Blueprint Example
tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: labels: description: Application instance label, which must be the same as that specified by parameter selector label: Workload default: test deploymentName: description: Workload name label: Workload default: deployment-test image: description: Application image address label: Workload ingressName: description: Ingress name label: Ingress information default: ingress-test host: description: Domain name information about the ingress host label: Ingress information default: test.com secretName: description: Secret name label: Ingress information type: HuaweiCloud.ECS.KeyPair.Name serviceName: description: Service name label: Network service default: service-test servicePort: description: Service port label: Network service default: 8888 type: integer path: description: Application route label: Network service default: /test protocol: description: Service protocol, which must be TCP or UDP label: Network service default: TCP targetPort: description: Open service port of an application label: Network service default: 8888 type: integer node_templates: my-deployment: properties: k8sManifest: apiVersion: apps/v1 kind: Deployment metadata: labels: app: get_input: labels name: get_input: deploymentName spec: replicas: 1 selector: matchLabels: app: get_input: labels strategy: rollingUpdate: maxSurge: 0 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: get_input: labels spec: containers: - image: get_input: image imagePullPolicy: IfNotPresent name: nginx requirements: [] type: HuaweiCloud.CCE.Deployment my-ingress: properties: k8sManifest: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: ingress.beta.kubernetes.io/role: data ingress.kubernetes.io/secure-backends: 'false' labels: isExternal: 'true' zone: data name: get_input: ingressName spec: rules: - host: get_input: host http: paths: - backend: serviceName: get_input: serviceName servicePort: get_input: servicePort path: get_input: path tls: - secretName: get_input: secretName hosts: - get_input: host requirements: - dependency: node: my-service type: HuaweiCloud.CCE.Ingress my-service: properties: k8sManifest: apiVersion: v1 kind: Service metadata: name: get_input: serviceName spec: ports: - name: get_input: serviceName port: get_input: servicePort protocol: get_input: protocol targetPort: get_input: targetPort selector: app: get_input: labels sessionAffinity: ClientIP type: ClusterIP requirements: - dependency: node: my-deployment type: HuaweiCloud.CCE.Service
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.