class TcpDiscoveryKubernetesIpFinder extends TcpDiscoveryIpFinderAdapter {
    /** Kubernetes connection configuration */
    private final KubernetesConnectionConfiguration cfg;

    /**
     * Creates an instance of Kubernetes IP finder.
     */
    public TcpDiscoveryKubernetesIpFinder() {
        this(new KubernetesConnectionConfiguration());
    }

    /**
     * Creates an instance of Kubernetes IP finder.
     *
     * @param cfg Kubernetes IP finder configuration.
     */
    public TcpDiscoveryKubernetesIpFinder(KubernetesConnectionConfiguration cfg) {
        setShared(true);
        this.cfg = cfg;
    }

    /** {@inheritDoc} */
    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
        // No-op
    }

    /** {@inheritDoc} */
    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
        // No-op
    }

    /**
     * @param service Kubernetes service name.
     * @deprecated set parameters with {@code KubernetesConnectionConfiguration} instead.
     */
    @Deprecated
    public void setServiceName(String service) {
        cfg.setServiceName(service);
    }

    /**
     * @param namespace Namespace of the Kubernetes service.
     * @deprecated set parameters with {@code KubernetesConnectionConfiguration} instead.
     */
    @Deprecated
    public void setNamespace(String namespace) {
        cfg.setNamespace(namespace);
    }

    /**
     * @param master Host name of the Kubernetes API server.
     * @deprecated set parameters with {@code KubernetesConnectionConfiguration} instead.
     */
    @Deprecated
    public void setMasterUrl(String master) {
        cfg.setMasterUrl(master);
    }

    /**
     * @param accountToken Path to the service token file.
     * @deprecated set parameters with {@code KubernetesConnectionConfiguration} instead.
     */
    @Deprecated
    public void setAccountToken(String accountToken) {
        cfg.setAccountToken(accountToken);
    }

    /**
     * @param includeNotReadyAddresses Whether addresses of not-ready pods should be included.
     * @deprecated set parameters with {@code KubernetesConnectionConfiguration} instead.
     */
    @Deprecated
    public void includeNotReadyAddresses(boolean includeNotReadyAddresses) {
        cfg.setIncludeNotReadyAddresses(includeNotReadyAddresses);
    }
}

        try {
            return new KubernetesServiceAddressResolver(cfg)
                .getServiceAddresses()
                .stream().map(addr -> new InetSocketAddress(addr, cfg.getDiscoveryPort()))
                .collect(Collectors.toCollection(ArrayList::new));
        }
        catch (Exception e) {
            throw new IgniteSpiException(e);
        }
    
<methods>public non-sealed void <init>() ,public void close() ,public void initializeLocalAddresses(Collection<InetSocketAddress>) throws org.apache.ignite.spi.IgniteSpiException,public boolean isShared() ,public void onSpiContextDestroyed() ,public void onSpiContextInitialized(org.apache.ignite.spi.IgniteSpiContext) throws org.apache.ignite.spi.IgniteSpiException,public org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter setShared(boolean) ,public java.lang.String toString() <variables>protected org.apache.ignite.Ignite ignite,private boolean shared,private volatile org.apache.ignite.spi.IgniteSpiContext spiCtx