Local Naming Parameters

tnsnames.ora文件是Oracle数据库连接的重要配置文件,本文详细介绍了其语法结构,包括地址列表、连接数据、安全和超时参数等。重点讲解了如何设置多个描述、地址列表、故障转移和负载均衡,以及连接超时和压缩参数的用法,帮助读者理解和配置Oracle客户端连接。

Tnsnames.ora file Check ordering:

  1. The directory specified by the TNS_ADMIN environment variable. If the file is not found in the directory specified, then it is assumed that the file does not exist.
  2. If the TNS_ADMIN environment variable is not set, then Oracle Net checks the ORACLE_HOME/network/admin directory.

On Microsoft Windows, the TNS_ADMIN environment variable is used if it is set in the environment of the process. If the TNS_ADMIN environment variable is not defined in the environment, or the process is a service which does not have an environment, then Microsoft Windows scans the registry for a TNS_ADMIN parameter.

General Syntax of tnsnames.ora

net_service_name=

 (DESCRIPTION=

   (ADDRESS=(protocol_address_information))

   (CONNECT_DATA=

     (SERVICE_NAME=service_name)))

Multiple Descriptions in tnsnames.ora

net_service_name=

 (DESCRIPTION_LIST=

  (DESCRIPTION=

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)))

  (DESCRIPTION=

   (ADDRESS=(PROTOCOL=tcp)(HOST=hr1-svr)(PORT=1521))

   (ADDRESS=(PROTOCOL=tcp)(HOST=hr2-svr)(PORT=1521)))

   (CONNECT_DATA=

     (SERVICE_NAME=hr.us.example.com))))

Note: Oracle Net Manager does not support the creation of multiple connect descriptors for a net service name when using Oracle Connection Manager.

Multiple Address Lists in tnsnames.ora

net_service_name=

 (DESCRIPTION=

  (ADDRESS_LIST=

   (LOAD_BALANCE=on)

   (FAILOVER=off)

   (ADDRESS=(protocol_address_information))

   (ADDRESS=(protocol_address_information)))

  (ADDRESS_LIST=

   (LOAD_BALANCE=off)

   (FAILOVER=on)

   (ADDRESS=(protocol_address_information))

   (ADDRESS=(protocol_address_information)))

  (CONNECT_DATA=

   (SERVICE_NAME=service_name)))

Note: Oracle Net Manager supports only the creation of one protocol address list for a connect descriptor.

Connect-Time Failover and Client Load Balancing with Oracle Connection Managers(CM)

When a connect descriptor in a tnsnames.ora file contains at least two protocol addresses for Oracle Connection Manager, parameters for connect-time failover and load balancing can be included in the file.

sample1=

 (DESCRIPTION=

   (SOURCE_ROUTE=yes)

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))    # 1

     (ADDRESS_LIST=  

       (FAILOVER=on)

       (LOAD_BALANCE=off)                               #  2

       (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630))

       (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630)))

     (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521)))    #  3

   (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))

  1. The client is instructed to connect to the protocol address of the first Oracle Connection Manager, as indicated by:

(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))

  1. The first Oracle Connection Manager is instructed to connect to the first protocol address of another Oracle Connection Manager. If the first protocol address fails, then it tries the second protocol address. This sequence is specified with the following configuration:

(ADDRESS_LIST=  

  (FAILOVER=on)

  (LOAD_BALANCE=off)

  (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630))

  (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630)))

  1. Oracle Connection Manager connects to the database service using the following protocol address:

(ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521))

Example 6-5

sample2=

 (DESCRIPTION=

   (LOAD_BALANCE=on)                                    # 1

   (FAILOVER=on)

   (ADDRESS_LIST=

     (SOURCE_ROUTE=yes)

     (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))    # 2

     (ADDRESS=(PROTOCOL=tcp)(HOST=host2)(PORT=1521)))

  (ADDRESS_LIST=

     (SOURCE_ROUTE=yes)

     (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(port=1630))

     (ADDRESS=(PROTOCOL=tcp)(HOST=host4)(port=1521)))

   (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))  # 3

  1. The client is instructed to pick an ADDRESS_LIST at random and to fail over to the other if the chosen ADDRESS_LIST fails. This is indicated by the LOAD_BALANCE and FAILOVER parameters being set to on.
  2. When an ADDRESS_LIST is chosen, the client first connects to Oracle Connection Manager, using the Oracle Connection Manager protocol address that uses port 1630 indicated for the ADDRESS_LIST.
  3. Oracle Connection Manager then connects to the database service, using the protocol address indicated for the ADDRESS_LIST.

ADDRESS相关参数

net_service_name=

(DESCRIPTION=

 (ADDRESS=(PROTOCOL=tcp)(HOST=sales-svr)(PORT=1521))

 (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))

  1. HTTPS_PROXY

To specify HTTP proxy host name for tunneling SSL client connections.

The clients can tunnel secure connections over forward HTTP proxy using HTTP CONNECT method. This helps in accessing the public cloud database service as it eliminates the requirement to open an outbound port on a client side firewall. This parameter is applicable only to the connect descriptors where PROTOCOL=TCPS. This is similar to the web browser setting for intranet users who want to connect to internet hosts. This value takes effect only when SQLNET.USE_HTTPS_PROXY=1 is set in sqlnet.ora. Increase the forward web proxy read timeout for requests to a higher value depending on client queries. Otherwise, the forward web proxy closes the connection assuming that no requests are made from the client.

This parameter is applicable with Oracle Connection Manager on the server side.

HTTPS_PROXY=www-proxy.mycompany.com

  1. HTTPS_PROXY_PORT

To specify forward HTTP proxy host port for tunneling SSL client connections.

It forwards the HTTP proxy host port that receives HTTP CONNECT method. This parameter should be used along with HTTPS_PROXY_PORT. This value takes effect only when SQLNET.USE_HTTPS_PROXY=1 is set in sqlnet.ora.

HTTPS_PROXY_PORT=80

  1. ADDRESS_LIST

有多个ADDRESS时使用ADDRESS_LIST, 但ADDRESS_LIST非强制也可以不写

net_service_name=

 (DESCRIPTION=

  (ADDRESS_LIST=

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))

下以参数只用于多ADDRESS中:

  1. ENABLE

To allow the caller to detect a terminated remote server, typically it takes 2 hours or more to notice. 通常要2小时甚至更长才能发现一个远程终止的服务器。它只有一个值即broken

The keepalive feature on the supported TCP transports can be enabled for a net service client by putting (ENABLE=broken) under the DESCRIPTION parameter in the connect string.

On the client side, the default for tcp_keepalive is off. Operating system TCP configurables, which vary by platform, define the actual keepalive timing details.

Example

net_service_name=

 (DESCRIPTION=

  (ENABLE=broken)

  (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

  (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))

  1. FAILOVER

To enable or disable connect-time failover for multiple protocol addresses. 默认为on

When you set the parameter to on, yes, or true, Oracle Net fails over at connect time to a different address if the first protocol address fails. When you set the parameter to off, no, or false, Oracle Net tries one protocol address.

要求监听不能是静态的

Do not set the GLOBAL_DBNAME parameter in the SID_LIST_listener_name section of the listener.ora. A statically configured global database name disables connect-time failover.

net_service_name=

 (DESCRIPTION=

  (FAILOVER=on)

  (ADDRESS_LIST=

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))

  1. LOAD_BALANCE

To enable or disable client load balancing for multiple protocol addresses. 默认为on

When you set the parameter to on, yes, or true, Oracle Net goes through the list of addresses in a random sequence, balancing the load on the various listener or Oracle Connection Manager protocol addresses. When you set the parameter to offno, or false, Oracle Net tries the protocol addresses sequentially until one succeeds.

Example

net_service_name=

 (DESCRIPTION=

  (LOAD_BALANCE=on)

  (ADDRESS_LIST=

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))

  1. RECV_BUF_SIZE

To specify, in bytes, the buffer space for receive operations of sessions.

This parameter is supported by the TCP/IP, TCP/IP with SSL, and SDP protocols.

Setting this parameter in the connect descriptor for a client overrides the RECV_BUF_SIZE parameter at the client-side sqlnet.ora file.

The default value for this parameter is specific to the operating system. The default for the Linux 2.6 operating system is 87380 bytes.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)

        (RECV_BUF_SIZE=11784))

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)

        (RECV_BUF_SIZE=11784))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)))net_service_name=

 (DESCRIPTION=

   (RECV_BUF_SIZE=11784)

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=hr1-server)(PORT=1521))

     (ADDRESS=(PROTOCOL=tcp)(HOST=hr2-server)(PORT=1521)))

   (CONNECT_DATA=

     (SERVICE_NAME=hr.us.example.com)))

  1. SDU

To instruct Oracle Net to optimize the transfer rate of data packets being sent across the network with a specified session data unit (SDU) size.

Setting this parameter in the connect descriptor for a client overrides the DEFAULT_SDU_SIZE parameter at client-side sqlnet.ora file.

Default: 8192 bytes (8 KB), Values:512 to 2097152 bytes.

Example

net_service_name=

 (DESCRIPTION=

  (SDU=8192)

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521))

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))

  (CONNECT_DATA=

    (SERVICE_NAME=sales.us.example.com))

  1. SEND_BUF_SIZE

To specify, in bytes, the buffer space for send operations of sessions.

This parameter is supported by the TCP/IP, TCP/IP with SSL, and SDP protocols.

Put this parameter under the DESCRIPTION parameter or at the end of the protocol address.

Setting this parameter in the connect descriptor for a client overrides the SEND_BUF_SIZE parameter at the client-side sqlnet.ora file.

Default:The default value for this parameter is operating system specific. The default for the Linux 2.6 operating system is 16 KB.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)

        (SEND_BUF_SIZE=11784))

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)

        (SEND_BUF_SIZE=11784)))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)))net_service_name=

 (DESCRIPTION=

   (SEND_BUF_SIZE=11784)

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=hr1-server)(PORT=1521)

     (ADDRESS=(PROTOCOL=tcp)(HOST=hr2-server)(PORT=1521)))

   (CONNECT_DATA=

     (SERVICE_NAME=hr.us.example.com)))

  1. SOURCE_ROUTE

To enable routing through multiple protocol addresses.

When you set this parameter to on or yes, Oracle Net uses each address in order until the destination is reached.

To use Oracle Connection Manager, an initial connection from the client to Oracle Connection Manager is required, and a second connection from Oracle Connection Manager to the listener is required.

Default: off

net_service_name=

 (DESCRIPTION=

  (SOURCE_ROUTE=on)

  (ADDRESS=(PROTOCOL=tcp)(HOST=cman-pc)(PORT=1630))

  (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

  (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))

  1. TYPE_OF_SERVICE

To specify the type of service to use for an Oracle Rdb database.

This parameter should only be used if the application supports both an Oracle Rdb and Oracle database service, and you want the application to load balance between the two.

net_service_name=

 (DESCRIPTION_LIST=

  (DESCRIPTION=

   (ADDRESS=...)

   (CONNECT_DATA=

    (SERVICE_NAME=generic)

    (RDB_DATABASE=[.mf]mf_personal.rdb)

    (GLOBAL_NAME=alpha5))

   (TYPE_OF_SERVICE=rdb_database))

  (DESCRIPTION=

   (ADDRESS=...)

   (CONNECT_DATA=

    (SERVICE_NAME=sales.us.example.com))

   (TYPE_OF_SERVICE=oracle11_database)))

Connection Data Section

CONNECT_DATA permits the following additional parameters:

net_service_name=

 (DESCRIPTION=

  (ADDRESS_LIST=

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=

    (SERVICE_NAME=sales.us.example.com)))

  1. SHARDING_KEY

To route the database request to a particular shard.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)

     ((SHARDING_KEY=40598230))))

  1. SUPER_SHARDING_KEY

To route the database request to a collection of shards.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)

     ((SHARDING_KEY=40598230)(SUPER_SHARDING_KEY=gold)))

  1. FAILOVER_MODE

To instruct Oracle Net to fail over to a different listener if the first listener fails during run time.

Depending upon the configuration, the session or any SELECT statements which were in progress are automatically failed over.

This type of failover is called Transparent Application Failover (TAF) and should not be confused with the connect-time failover FAILOVERparameter.

FAILOVER_MODE supports the following parameters:

  1. BACKUP: Specifies the failover node by its net service name. A separate net service name must be created for the failover node.
  2. TYPE: Specifies the type of failover. Three types of Oracle Net failover functionality are available by default to Oracle Call Interface (OCI)applications:

SESSION: Fails over the session. For example, if a user's connection is lost, then a new session is automatically created for the user on the backup. This type of failover does not attempt to recover selects.

SELECT: Allows users with open cursors to continue fetching them after failure. However, this mode involves overhead on the client side in normal select operations.

NONE: This is the default, in which no failover functionality is used. This can also be explicitly specified to prevent failover from happening.

  1. METHOD: Specifies how fast failover is to occur from the primary node to the backup node:

BASIC: Establishes connections at failover time. This option requires almost no work on the backup database server until failover time.

PRECONNECT: Pre-establishes connections. This provides faster failover but requires that the backup instance be able to support all connections from every supported instance.

TRANSACTION: Allows the database to complete the current database transaction following a recoverable error. This parameter is used with the COMMIT_OUTCOME=TRUE parameter.

RETRIES: Specifies the number of times to attempt to connect after a failover. If DELAY is specified, then RETRIES defaults to five retry attempts.

DELAY: Specifies the amount of time in seconds to wait between connect attempts. If RETRIES is specified, then DELAY defaults to one second.

Note: If a callback function is registered, then RETRIES and DELAY parameters are ignored.

  1. GLOBAL_NAME

To identify the Oracle Rdb database.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

    (ADDRESS=...)

    (ADDRESS=...))

   (CONNECT_DATA=

    (SERVICE_NAME=generic)

    (RDB_DATABASE=[.mf]mf_personal.rdb)

    (GLOBAL_NAME=alpha5)))

  1. HS

To direct Oracle Net to connect to a non-Oracle system through Heterogeneous Services.

只能设置为ok

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

    (SID=sales6)

    )

(HS=ok))

  1. INSTANCE_NAME

To identify the database instance to access. Set the value to the value specified by the INSTANCE_NAME parameter in the initialization parameter file.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)

     (INSTANCE_NAME=sales1)))

  1. RDB_DATABASE

To specify the file name of an Oracle Rdb database.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)

     (RDB_DATABASE= [.mf]mf_personal.rdb)))

  1. SERVER

To direct the listener to connect the client to a specific type of service handler.

Values

dedicated to specify whether client requests be served by dedicated server.

shared to specify whether client requests be served by a dispatcher or shared server.

pooled to get a connection from the connection pool if database resident connection pooling is enabled on the server.

Shared server must be configured in the database initialization file in order for the client to connect to the database with a shared server process.

The USE_DEDICATED_SERVER parameter in the sqlnet.ora file overrides this parameter.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

    (SERVICE_NAME=sales.us.example.com)

    (SERVER=dedicated)))

  1. SERVICE_NAME

To identify the Oracle Database database service to access.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

     (SERVICE_NAME=sales.us.example.com)))

Security Section

1. SECURITY

To enable secure connections. Put this parameter under the DESCRIPTION parameter.

SECURITY permits the SSL_SERVER_CERT_DN parameter.

net_service_name=

 (DESCRIPTION=

  (ADDRESS_LIST=

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

    (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=

    (SERVICE_NAME=sales.us.example.com))

    (SECURITY=

      (SSL_SERVER_CERT_DN="cn=sales,cn=OracleContext,dc=us,dc=acme,dc=com")))

  1. SSL_SERVER_CERT_DN

To specify the distinguished name (DN) of the database server.

The client uses this information to obtain the list of DNs it expects for each of the servers, enforcing the database server DN to match its service name.

Use this parameter with the sqlnet.ora parameter SSL_SERVER_DN_MATCH to enable server DN matching.

net_service_name=

 (DESCRIPTION=

   (ADDRESS_LIST=

     (ADDRESS=...)

     (ADDRESS=...))

   (CONNECT_DATA=

     (SERVICE_NAME=finance.us.example.com))

   (SECURITY=

     (SSL_SERVER_CERT_DN="cn=finance,cn=OracleContext,dc=us,dc=acme,dc=com")))

Timeout Parameters

1. CONNECT_TIMEOUT

To specify the timeout duration in seconds for a client to establish an Oracle Net connection to an Oracle database.

Put this parameter under the DESCRIPTION parameter.

The timeout interval specified by CONNECT_TIMEOUT is a superset of the TCP connect timeout interval. It includes the time to be connected to the database instance providing the requested service, not just the duration of the TCP connection.

The timeout interval is applicable for each ADDRESS in an ADDRESS_LIST, and each IP address to which a host name is mapped.

The CONNECT_TIMEOUT parameter is equivalent to the sqlnet.ora parameter SQLNET.OUTBOUND_CONNECT_TIMEOUT, and overrides it.

net_service_name=

 (DESCRIPTION=

  (CONNECT_TIMEOUT=10)(RETRY_COUNT=3)

  (ADDRESS_LIST=

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

  (CONNECT_DATA=

   (SERVICE_NAME=sales.us.example.com)))

2. RETRY_COUNT

To specify the number of times an ADDRESS list is traversed before the connection attempt is terminated.

Put this parameter under the DESCRIPTION parameter.

When a DESCRIPTION_LIST is specified, each DESCRIPTION is traversed multiple times based on the specified number of retries.

  1. RETRY_DELAY

To specify the delay in seconds between subsequent retries for a connection. This parameter works in conjunction with RETRY_COUNT parameter.

Put this parameter under the DESCRIPTION parameter.

When a DESCRIPTION_LIST is specified, each DESCRIPTION is traversed multiple times based on the specified number of retries, and the specific delay for the description.

net_service_name=

(DESCRIPTION_LIST=

 (DESCRIPTION=

  (CONNECT_TIMEOUT=10)(RETRY_COUNT=3)(RETRY_DELAY=2)

  (ADDRESS_LIST=

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1a-svr)(PORT=1521))

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1b-svr)(PORT=1521)))

  (CONNECT_DATA=(SERVICE_NAME=sales1.example.com)))

 (DESCRIPTION=

  (CONNECT_TIMEOUT=60)(RETRY_COUNT=2)(RETRY_DELAY=1)

  (ADDRESS_LIST=

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2a-svr)(PORT=1521))

   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2b-svr)(PORT=1521)))

  (CONNECT_DATA=(SERVICE_NAME=sales2.us.example.com))))

  1. TRANSPORT_CONNECT_TIMEOUT

To specify the transportation timeout duration in seconds for a client to establish an Oracle Net connection to an Oracle database.

This parameter is put under the DESCRIPTION parameter.

The TRANSPORT_CONNECT_TIMEOUT parameter specifies the time, in seconds, for a client to establish a TCP connection to the database server. The default value is 60 seconds.

The timeout interval is applicable for each ADDRESS in an ADDRESS_LIST description, and each IP address that a host name is mapped. The TRANSPORT_CONNECT_TIMEOUT parameter is equivalent to the sqlnet.ora parameter TCP.CONNECT_TIMEOUT, and overrides it.

net_service_name =

  (DESCRIPTION=

    (TRANSPORT_CONNECT_TIMEOUT=10)

    (ADDRESS_LIST=

      (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

      (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))

    (CONNECT_DATA=

      (SERVICE_NAME=sales.us.example.com)))

Compression Parameters

1. COMPRESSION

To enable or disable data compression.

Put this parameter under the DESCRIPTION parameter.

Setting this parameter in the connect descriptor for a client overrides the SQLNET.COMPRESSION parameter in the client-side sqlnet.ora file.

Default:off

net_service_name=

 (DESCRIPTION=

   (COMPRESSION=on)

      (ADDRESS_LIST=

         (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521))

         (ADDRESS= (PROTOCOL=tcp) (HOST=sales2-server) (PORT=1521)))

   (CONNECT_DATA=

       (SERVICE_NAME=sales.us.example.com)))

  1. COMPRESSION_LEVELS

To specify the compression level.

The compression levels are used at the time of negotiation to verify which levels are used at both ends, and select one level. Put this parameter under the DESCRIPTION parameter.

This parameter is used with the COMPRESSION parameter. Setting this parameter in the connect descriptor for a client overrides the SQLNET.COMPRESSION_LEVELS parameter in the client-side sqlnet.ora file.

Values: low(default)|high 

net_service_name=

 (DESCRIPTION=

  (COMPRESSION=on)

  (COMPRESSION_LEVELS=(LEVEL=low)(LEVEL=high))

   (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521))

     (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))

  (CONNECT_DATA=

    (SERVICE_NAME=sales.us.example.com)))

Example Packet Analyzer Commands This section is applicable for the following families of devices: a Aldrin a Aldrin2 a Gen6 devices Packet Analyzer commands require switching to Packet Analyzer context (within Debug context) using the packet-analyzer command. Use the exit command to exit any of the Packet Analyzer sub-contexts. To use the Packet Analyzer commands, the debugged device iDebug XML file must be located in the appropriate location. XML files are under cpss/tools/admin/iDebug. Copy them to either of the following locations, depending on the desired platform: For Linux target devices (black mode), to /usr/bin For Linux simulation, to ~/embeddedFs/CHIP_SIMULATION_03_394/ For Windows simulation, to C:\Users\<user-name>\AppData\Local\Temp\embeddedFs\CHIP_SIMULATION_03_394\ Packet Analyzer configuration and operation is preserved even when outside the Packet Analyzer context, enabling re-entrance for sampled data viewing. See Lua CLI Support section in CPSS User Guide for more details. clear Use the clear command to reset the sampling counter which counts the number of samplings in each Stage. Using this command ensures accurate count results between separate samplings. Syntax clear Parameters None Command Context Packet-Analyzer context Example Console(debug.0-pa-1)# clear configure pipeline Use the configure pipeline command to configure a Packet Analyzer to operate in pipeline mode. Using this command transitions to a sub-context for configuring pipeline mode parameters. Syntax configure pipeline Parameters None Command Context Packet-Analyzer context Example To configure Pipeline mode: Console(debug)# packet-analyzer manager 1 device 0 Console(debug.pa-1)# configure pipeline Console(debug.0-pa-1-pipeline)# configure pipeline packet-trace Use the configure pipeline packet-trace command to configure a Packet Analyzer to operate in pipeline mode and enable packet-trace option. Using this command transitions to a sub-context for configuring pipeline mode parameters. See explanation on packet trace usage in Packet Analyzer section CPSS User Guide. This command is not available for Aldrin and Aldrin2. Syntax configure pipeline packet-trace Parameters None Command Context Packet-Analyzer context Example To configure Pipeline mode: Console(debug)# packet-analyzer manager 1 device 0 Console(debug.pa-1)# configure pipeline packet-trace Console(debug.0-pa-1-pipeline-packet-trace)# configure stage Use the configure stage command to set the Stage to use in stage mode. Using this command transitions to a sub-context for configuring stage mode parameters of the specified stage, as demonstrated by the prompt containing the stage name. When trying to configure an inactive stage muxed with a currently active one, an error message is issued naming the currently active stage. Following deactivation of the latter, reuse this command to activate the desired stage. Use the no form of the configure stage command to stop sampling the specified stage, as well as deactivating a stage prior to activating any of its muxed stages. Syntax configure stage <stageName> no configure stage <stageName> Parameters stageName - Stage name; replacing stageName with a ‘?’ yields a list of stage names available for configuration. Stage name may be either a pre-defined or a user-defined Stage Command Context Packet-Analyzer context Example To obtain a list of Stage names to configure: Console(debug.0-pa-1)# configure stage ? Packet-Analyzer stage bridge Pre Bridge ingress stage e-filter Pre Filter egress stage e-oam Pre OAM egress stage e-pcl Pre PCL egress stage e-policer Pre Policer egress stage equeue Pre e-Queue ingress stage header-alt Pre Header Alteration egress stage i-oam Pre OAM ingress stage i-pcl Pre PCL0,1,2 ingress tages i-policer Pre Policer ingress stage mac Pre MAC egress stage mll Pre MLL ingress stage pha Pre programmable Header Alteration egress stage (falcon only) replication Pre replication egress stage (falcon only) router Pre Router ingress stage timestamp Pre Timestamp egress stage tti Pre TTI0,1 ingress stages tx-queue Pre tx-Queue egress stage <CR> Select stage Console(debug.0-pa-1)# To configure the Stage named i-pcl: Console(debug.pa-1)# configure stage i-pcl Console(debug.0-pa-1-i-pcl)# disable Use the disable command to cease sampling before viewing the sampling results. Syntax disable Parameters None Command Context Packet Analyzer context Example Sample the Pipeline for descriptors that came for port 5: Console(debug.0-pa-1)# configure pipeleine Console(debug-pa-1-pipeline)# match local_dev_src_port 5 Console(debug-pa-1-pipeline)# exit Console(debug-pa-1)# enable pipeline Run traffic, and then: Console(debug-pa-1)# disable enable pipeline Use the enable pipeline command to apply the configuration set by the configure pipeline command to the device hardware, and begin sampling in pipeline mode. Syntax enable pipeline Parameters None Command Context Packet Analyzer context Example Sample the Pipeline for descriptors Ingressing through port 5: Console(debug.0-pa-1)# configure pipeleine Console(debug-pa-1-pipeline)# match local_dev_src_port 5 Console(debug-pa-1-pipeline)# exit Console(debug-pa-1)# enable pipeline enable stage Use the enable stage command to apply the configuration set by the configure stage command(s) to the device hardware, and begin sampling in stage mode. Syntax enable stage Parameters None Command Context Packet Analyzer context Example Sample Stage i-pcl for descriptors with source port 5 and e-pcl for descriptors with egress port 6: Console(debug.0-pa-1)# configure stage i-pcl Console(debug-pa-1-i-pcl)# match local_dev_src_port 5 Console(debug-pa-1-i-pcl)# exit Console(debug.0-pa-1)# configure stage e-pcl Console(debug-pa-1-i-pcl)# match trg_phy_port 6 Console(debug-pa-1-i-pcl)# exit Console(debug-pa-1)# enable stage Stages must be configured in order to be enabled in Stage mode inverse Use the inverse command to sample descriptors not matching all configured filters in Pipeline or Stage mode. Due to this command requiring none of the filters is matched (AND between all NOTs), use it sparingly and carefully. This command affects sampling at all Stages when in Pipeline mode, and at the currently configured Stage when in Stage mode. Syntax inverse Parameters None Command Context Pipeline Configuration and Stage Configuration contexts Example To match in Pipeline mode on ingress port number other than 5: Console(debug.0-pa-1)# configure pipeleine Console(debug-pa-1-pipeline)# match local_dev_src_port 5 Console(debug-pa-1-pipeline)# inverse Console(debug-pa-1-pipeline)# match Use the match command to filter descriptors with a specific field value when configuring Pipeline or a Stage for sampling. This allows limiting sampling to descriptors with specific values in specific fields. A mask can be used in conjunction with the value, when only a field segment is of interest, such as domain within and IP address. In Pipeline configuration context, the field must exist in at least one of the stages within the Pipeline. In Stage configuration context, the field must exist in the configured Stage. The filtered fields are marked for display in the show pipeline or show stage commands Syntax match <fieldName> <fieldValue> [mask <maskValue>] Parameters fieldName - Name of field within one of the Pipeline stages or in the configured Stage fieldValue - Value of field to match maskValue - Mask limiting matching to a field value segment; for example, in an IPV4 field, a 255.255.255.0 mask limits matching to the domain; 0 disable filtering according to field value, meaning this field is of interest regardless of its value User Guidelines Field and mask values are specified in terms of the field type: Numeric values - A decimal number Hex values - Hex number preceded by a 0x prefix IP address - IP address formatted as xxx.xxx.xxx.xxx or xxx:xxx:xxx:xxx:xxx MAC Address - MAC address formatted as xx:xx:xx:xx:xx:xx Replacing field value with ?, yields a list of possible field values. Setting a 0 (0x0) mask merely marks the field for display in the show command. Command Context Pipeline configuration and Stage configuration contexts Examples To sample ingress port number 5 in Pipeline mode: Console(debug.0-pa-1)# configure pipeleine Console(debug-pa-1-pipeline)# match local_dev_src_port 5 Console(debug-pa-1-pipeline)# To sample a domain value of 192.168.1 in an IPv4 destination address while in the ‘router’ Stage: Console(debug.0-pa-1)# configure stage router Console(debug-pa-1-router)# match ipv4_dip 192.168.1.1 mask 255.255.255.0 Console(debug-pa-1-router)# To mark local_dev_src_port field for the show command only; no match: Console(debug.0-pa-1)# configure pipeleine Console(debug-pa-1-pipeline)# match local_dev_src_port 0 mask 0 Console(debug-pa-1-pipeline)# packet-analyzer Use the packet-analyzer Debug context command to create a Packet Analyzer Manager for the specified device, and enter Packet Analyzer context. If the specified Manager ID is already in use, switches to this existing manager. It is possible to create several concurrent managers with varying configurations, and use them at separate times. Syntax packet-analyzer [manager <managerId>] device <devId> Parameters managerId - Packet Analyzer manager ID; when omitted, a manager with ID = 1 is created, or if already exists, switches to its working context devId – Device ID Command Context Debug context Example Console(debug)# packet-analyzer manager 1 device 0 Console(debug.pa-1)# sampling-mode Use the sampling-mode command to configure Packet Analyzer to sample the first or last of the descriptors matching the sampling criteria. Regardless of the sampling mode, the hit counter continues counting until sampling is disabled. If this command is not used, last-match sampling mode is used Syntax sampling-mode {first-match | last-match} Parameters first-match - Sample first descriptor matching sampling criteria last-match - Continue sampling and matching descriptor for sampling criteria Command Context Pipeline Configuration and Stage Configuration contexts Example To sample the first descriptor in all Pipeline Stages: Console(debug.0-pa-1)# configure pipeleine Console(debug-pa-1-pipeline)# sampling-mode first-match Console(debug-pa-1-pipeline)# To sample the first descriptor in i-pcl Stage, and the last descriptor in the router Stage: Console(debug.0-pa-1)# configure stage i-pcl Console(debug-pa-1-i-pcl)# sampling-mode first-match Console(debug-pa-1-i-pcl)# exit Console(debug.0-pa-1)# configure stage router Console(debug-pa-1-router)# sampling-mode last-match Console(debug-pa-1-router)# exit Console(debug-pa-1)# show pipeline Use the show pipeline command to display the sampled pipeline-mode data. The displayed data includes, in this order: List of Pipeline Stages, and number of matches found in each List of fields used in filters (configured using the match command) Sampling mode – First/last, or inverse List of all stages and sampled values, if any (no value signifies no found match) Note: Field list depends on command parameter Syntax show pipeline [field {<fieldName> | all | dump}] Parameters fieldName - Field to display all - Display values of all defined fields (both pre and user-defined) dump - Display values of all fields - predefined, user-defined, and unnamed - in all Stages Command Context Packet Analyzer context Example Console(debug.pa-1)# configure pipeline Console(debug.0-pa-1-pipeline)# match local_dev_src_port 1 Console(debug.0-pa-1-pipeline)# exit Console(debug.pa-1)# enable pipeline Console(debug.pa-1)# disable Console(debug.pa-1)# show pipeline Hits: tti : 165719975 i-pcl : 182160528 bridge : 181962972 router : 179923992 i-oam : 179307633 i-policer : 178133064 equeue : 174874642 e-filter : 173543688 header-alt : 0 e-pcl : 0 e-policer : 0 replication : 0 mac : 666079946 Match : local_dev_src_port = 1 mask = 0x3FF Sampled data (first-match): Stage: tti local_dev_src_port = 1 Stage: i-pcl local_dev_src_port = 1 Stage: bridge local_dev_src_port = 1 Stage: router local_dev_src_port = 1 Stage: i-oam local_dev_src_port = 1 Stage: i-policer local_dev_src_port = 1 Stage: equeue local_dev_src_port = 1 Stage: e-filter local_dev_src_port = 1 Stage: header-alt NONE Stage: e-pcl NONE Stage: e-policer NONE Stage: replication NONE Stage: mac Console(debug.pa-1)# show stage Use the show stage command to display the sampled stage-mode data. The displayed data per stage includes, in this order: Stage name, and number of matches found in it List of fields used in Stage filters (configured using the match command) Sampling mode – first/last, inverse List of fields and sampled values, if any (no value signifies no found match) Syntax show stage <stageName> [field {<fieldName> | all | dump}] Parameters stageName - Name of Stage to display field - Field to display. When omitted, all matched fields are displayed fieldName - Field to display all - Display values of all defined fields (both pre and user-defined) dump - Display values of all fields - predefined, user-defined, and unnamed - in the specified Stage Command Context Packet Analyzer context Example Console(debug.pa-1)# configure stage bridge Console(debug.0-pa-1-bridge)# Console(debug.0-pa-1-bridge)# match mac_da 00:00:00:00:00:00 Console(debug.0-pa-1-bridge)# exit Console(debug.pa-1)# enable stage Console(debug.pa-1)# disable Console(debug.pa-1)# show stage bridge field mac_da Stage: bridge Hits: 0 Match : mac_da = 00:00:00:00:00:00 mask = 0xFF:FF:FF:FF:FF:FF Sampled data (last-match): NONE Console(debug.pa-1)# show user-defined stage Use the show user-defined stage Exec context command to display the list of user defined Stages. Syntax show user-defined stage [all] Parameters all - Display information, including Stage index, on all Stages, including pre-defined ones. When omitted, display only user-defined Stages Command Context Packet Analyzer context Example Console(debug.pa-1)# show user-defined stage Stage Name | Interface | Instance | Leg | Status | Index ---------------- --------------- ------------- ------- -------- -------- stage1 i22 s32 1 invalid 0 stage2 i10 s123 2 valid 1 Status may be one of: invalid – Stage is inactive valid – Stage is active To activate a Stage, use the configure stage command. user-defined field Use the user-defined field Packet Analyzer context command to add a field to the list of defined fields. Use the no form of this command to delete the user-defined field definition. Number of UDFs is limited to 64 Syntax user-defined field <udfName> field-id <udfId> no user-defined field <udfName> Parameters udfName - Name to assign to new user-defined field udfId - Field ID in system, as supplied by a Marvell engineer Command Context Packet Analyzer context Example Console(debug-pa-1-router)#user-defied field myField field-id f50 Console(debug.0-pa-1)# no user-defined field myField user-defined stage Use the user-defined stage command to add a Stage to the list of defined Stages. Use the no form of this command to delete the user-defined Stage definition. Number of UDSes is limited to 20 New stages require activation before their usage, and when muxed with another stage, require that the currently muxed stage is deactivated, and only then can they be activated: Utilize the configure pipeline command to activate a new stage, or if muxed, to obtain the name of the currently active muxed stage Use the no form of the configure pipeline command to deactivate the muxed stage, and then re-use configure pipeline to activate the new stage Syntax user-defined stage <udsName> interface <interfaceId> instance <instanceId> leg <instanceLeg> no user-defined stage <udsName> Parameters udsName - Name to assign to new user-defined Stage interfaceId - i-Debug interface ID, as supplied by a Marvell engineer instanceId - ID of i-Debug instance connected the Interface, as supplied by a Marvell engineer instanceLeg - Leg of Interface in Instance, as supplied by a Marvell engineer Command Context Packet Analyzer context Example Console(debug-pa-1-router)#user-defined stage MyStage interface i22 instance s32 leg 0 Console(debug.0-pa-1)# no user-defined stage <udsName> PHY Commands phy 10G register read Use the phy 10G register read Debug context commands to read the specified SMI register and 10G PHY device. Syntax phy 10g register read device {all | <devNum>} port <PortNum> register <reg> phyDev <phyDev_Num> phyID <phyID_Num> Parameters all |devNum – All devices or a specific device PortNum – Port number reg – Register to read, specified as an 16-bit unsigned integer phyDev_Num – PHY device number; range: 0-31 phyID_Num – PHY ID 翻译并解释
10-18
以下提供「單一權威機器可讀規範」machine-spec.yaml 完整設計,並附帶同倉庫最小落地套件:Helm/Kustomize 共用值、Gatekeeper 參數、Conftest 用 policy data、README 摘要與範例 Namespace。此檔案為所有工具鏈的唯一來源,其他檔引用此檔產生與校驗規則。 # machine-spec.yaml version: "v1.0" metadata: rfc_id: "RFC-2025-10-25" owner: "platform-engineering" managed_by: "axiom-naming-controller" last_review: "2025-10-25" description: "Canonical Naming Governance - 單一權威命名治理規範與 URN/URI 實作" naming: allowed_chars: "^[a-z0-9-]+$" case: "lower" max_length: 63 segments: - domain # 團隊/租戶:team、tenant、biz unit - component # 子系統:frontend、backend、api... - environment # dev、test、staging、prod、learn、sandbox - region # apac、cn、uswest...(可選) - version # v1、v2beta1(可選) - suffix # -ns/-deploy/-svc/-config/-secret/-pvc/-job 等 environments: - dev - test - staging - prod - learn - sandbox reserved_tokens: - core - internal - system - legacy - experimental suffix_mapping: namespace: "-ns" deployment: "-deploy" service: "-svc" configmap: "-config" secret: "-secret" pvc: "-pvc" job: "-job" cronjob: "-cron" networkpolicy: "-np" rbac: "-rbac" canonical_regex: "^(team|tenant|dev|test|staging|prod|learn)[-a-z0-9]{1,56}[a-z0-9]$" # 說明:預留總長 63,上述正則留 buffer 給首尾字元與可能的型別後綴 labels: required: - environment - tenant - app.kubernetes.io/managed-by key_pattern: "^[a-z0-9][a-z0-9-]{0,29}$" value_pattern: "^[a-zA-Z0-9.:@/+%-]{0,127}$" urn_uri: provider: "axiom" # urn:axiom:{domain}:{component}:env:{environment}:v{version} template: "urn:{{ .provider }}:{{ .domain }}:{{ .component }}:env:{{ .environment }}{{ if .version }}:{{ .version }}{{ end }}" qualifiers: max_qualifiers: 12 allowed_keys_pattern: "^[a-z0-9][a-z0-9-]{0,29}$" allowed_values_pattern: "^[a-zA-Z0-9.:@/+%-]{0,127}$" tooling: gatekeeper: constraints: required_labels: kind: "K8sRequiredLabels" params: requiredLabels: - environment - tenant - app.kubernetes.io/managed-by naming_pattern: kind: "K8sAllowedNames" params: namingPattern: "^(team|tenant|dev|test|staging|prod|learn)[-a-z0-9]{1,56}[a-z0-9]$" maxLength: 63 conftest: package: "naming" data_path: "policy/data/machine-spec.yaml" ci: github_actions: enable: true steps: - yamllint - kubeval - conftest helm: helpers_configmap_name: "naming-spec" kustomize: configMapRef: "naming-spec" acceptance: criteria: - "Regex 於 CI、Gatekeeper、Conftest 一致" - "三類命名模式覆蓋(team-domain-env / tenant-workload-env-region / env-app-version)" - "全倉 PR 階段驗證即攔截違規" versioning: policy: - "規範變更需提 RFC、審核、公告、回滾計畫" - "所有下游工具從此檔自動生成規則避免漂移" # reference-templates/namespace-minimal.yaml apiVersion: v1 kind: Namespace metadata: name: team-frontend-prod labels: environment: prod tenant: frontend app.kubernetes.io/managed-by: "axiom-naming-controller" annotations: axiom.io/canonical-urn: "urn:axiom:team:frontend:env:prod:v1" axiom.io/qualifiers: "region=apac;owner=team-frontend" # policy/gatekeeper/constraints.yaml apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sRequiredLabels metadata: name: namespace-required-labels spec: match: kinds: - apiGroups: [""] kinds: ["Namespace"] parameters: requiredLabels: - environment - tenant - app.kubernetes.io/managed-by --- apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sAllowedNames metadata: name: namespace-naming-pattern spec: match: kinds: - apiGroups: [""] kinds: ["Namespace"] parameters: namingPattern: "^(team|tenant|dev|test|staging|prod|learn)[-a-z0-9]{1,56}[a-z0-9]$" maxLength: 63 # policy/conftest/policy.rego package naming default allow = false canonical := input.spec # 若以 conftest --data 載入 machine-spec.yaml,可改為 data.machine_spec is_valid_name(name) { re_match("^(team|tenant|dev|test|staging|prod|learn)[-a-z0-9]{1,56}[a-z0-9]$", name) count(name) <= 63 } required_labels := {"environment", "tenant", "app.kubernetes.io/managed-by"} has_required_labels(obj) { some k required_labels[k] obj.metadata.labels[k] } allow { input.kind == "Namespace" is_valid_name(input.metadata.name) has_required_labels(input) } # .github/workflows/validate-manifests.yml name: Validate Manifests on: [pull_request] jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: pip install yamllint - run: curl -sSL https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz | tar xz && sudo mv kubeval /usr/local/bin/ - uses: open-policy-agent/conftest-action@v1 - run: yamllint manifests/ - run: kubeval --kubernetes-version=1.28 manifests/ - run: conftest test manifests/ --policy policy/ # helm/_helpers.tpl(節選) {{- define "naming.validateName" -}} {{- $regex := .Values.naming.canonical_regex | default "^(team|tenant|dev|test|staging|prod|learn)[-a-z0-9]{1,56}[a-z0-9]$" -}} {{- if not (regexMatch $regex .) -}} {{- fail (printf "name %s not matching canonical regex" .) -}} {{- end -}} {{- end -}} # kustomize/kustomization.yaml(節選) apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization configMapGenerator: - name: naming-spec files: - machine-spec.yaml generatorOptions: disableNameSuffixHash: true # tools/migrate-outline.py(遷移腳本大綱) # 1) 讀 machine-spec.yaml # 2) 列舉 cluster namespaces # 3) 比對 regex 與 tokens,產生建議 canonical_name # 4) 掃描依賴(RBAC/Ingress/DNS),計分高/中/低風險 # 5) 產生 dry-run patch 與 rename plan(csv) # README.md(單頁摘要) # Canonical Naming Governance v1.0 - 字符規則: allowed a-z0-9-; lowercase; max 63 - segments: [domain, component, environment, region, version, suffix] - environments: [dev, test, staging, prod, learn, sandbox] - required_labels: [environment, tenant, app.kubernetes.io/managed-by] - naming_regex: ^(team|tenant|dev|test|staging|prod|learn)[-a-z0-9]{1,56}[a-z0-9]$ - URN: urn:axiom:{domain}:{component}:env:{environment}:v{version}; qualifiers: k=v;... (<=12) 驗收: 1) Gatekeeper 拒絕不合規命名與缺標籤 2) CI conftest/kubeval/yamllint fail 阻斷合併 3) 三典型樣態覆蓋 版本治理: 走 RFC-審核-公告-回滾流程 使用說明: - 將 machine-spec.yaml 放於 repo 根目錄 - Gatekeeper/Conftest/Helm/Kustomize 全部引用此檔,嚴禁自行拷貝規則避免漂移 說明與注意 - canonical_regex 與工具鏈參數完全一致,避免驗證漂移 - suffix_mapping 提供生成與審閱一致性;若實際名稱直接帶 -deploy/-svc,長度請一併計入 63 限制 - reserved_tokens 禁止用於自訂 domain/component,保留給平台系統元件 - URN 存於 annotations,labels 用於選擇器與治理策略;qualifiers 控制在 12 個以內 若需要,我可以將上述結構拆為可直接運行的 Golang 代碼產生器與 Angular 設定 UI,確保平台團隊以視覺化方式維護 machine-spec.yaml,並由 CI 自動生成 Gatekeeper/Conftest 工件。
最新发布
10-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值