Confd 7.3 basic version Issues with Docker

I am trying to do following steps based on document ConfD Startup and Supervision with Kubernetes

  1. git clone https://github.com/ConfD-Developer/ConfD-App-Notes.git

  2. Used 7.3 basic version confd-basic-7.3.linux.x86_64.installer.bin

  3. confD-App-Notes/init-container-and-probes/containers/target-package-builder
    docker build --tag target-package-builder:v7.2.1 .
    -Docker image as target-package-builder is created successfully

  4. I am getting following error.
    ConfD-App-Notes/init-container-and- probes/containers/ubuntu-confd
    [root@son-kubernetes18 ubuntu-confd]# docker run --rm --env STDOUT=1 target-package-builder:v7.3 > resources/confd-target.tgz
    find: '/confd/lib/confd/lib/webui’: No such file or directory*
    find: ‘/confd/etc/confd/ietf-restconf-monitoring.fxs’: No such file or directory
    find: ‘/confd/etc/confd/tailf-webui.fxs’: No such file or directory
    Could you please let me know why i am getting file missing error?
    Also, size of confd-target.tgz is coming as 0
    Could you please help in resolving this issues ?

In these:

ConfD-App-Notes/init-container-and-probes/containers/modifications/confd.conf
ConfD-App-Notes/init-container-and-probes/containers/confd-app/resources/confd.conf
ConfD-App-Notes/init-container-and-probes/kubernetes/resources/confd.conf

Disable the nortbound interfaces not supported by ConfD Basic (here the webserver)::

...
  <webui>
    <enabled>false</enabled>
...

Thanks cohult for quick reply
Did not resolve, still getting same issues.

1>I have done changes in one files “containers/modifications/confd.conf” but not seen confd.conf in other two places.

ConfD-App-Notes/init-container-and-probes/containers/modifications/confd.conf
enabled as false for webui

[root@son-kubernetes18 target-package-builder]# pwd
/home/parallel/confd-poc/ConfD-App-Notes/init-container-and-probes/containers/target-package-builder
[root@son-kubernetes18 target-package-builder]# docker build --tag target-package-builder:v7.3 .
root@son-kubernetes18 ubuntu-confd]# docker run --rm --env STDOUT=1 target-package-builder:v7.3 > resources/confd-target.tgz
find: ‘/confd/lib/confd/lib/webui*’: No such file or directory
find: ‘/confd/etc/confd/ietf-restconf-monitoring.fxs’: No such file or directory
find: ‘/confd/etc/confd/tailf-webui.fxs’: No such file or directory

Do we need to compile/clean after changes in confd.conf ?

2>I do not see confd.conf files for other 2 places
ConfD-App-Notes/init-container-and-probes/containers/confd-app/resources/confd.conf
ConfD-App-Notes/init-container-and-probes/kubernetes/resources/confd.conf

I used “git clone https://github.com/ConfD-Developer/ConfD-App-Notes.git” .
Is there any thing missing in packages or ?
I tried to copy confd.conf from containers/modifications/confd.conf" to containers/confd-app/resources/confd.conf and kubernetes/resources/confd.conf.
Same issues is coming.

Could you please help in resolving this issues ?

Coud you please check this issues?

For example, you want to remove the dependencies on northbound interfaces such as the web server, snmp in the containers/target-package-builder/resources/builder

No, just restart ConfD.

That demo is obviously not targeting ConfD Basic users. So you need to dig in a bit yourself if you want to make it run with ConfD Basic. Feel free to contribute a demo variant that is targeting ConfD Basic.

Thanks a lot cohult for response. Last query related to your answer

Do we need to compile/clean after changes in confd.conf ?
cohult> No, just restart ConfD.
How to restart Confd from Docker perspective ?
i do not see any steps for restarting ConfD from Docker perspective based on user guide “Startup and Supervision with Kubernetes document” and Readme files.
It seems. Confd is installed using command “docker build --tag target-package-builder:v7.3 .” based on file confd-basic-7.3.linux.x86_64.installer.bin.

It would be great if you can give your input on this.

When running a container, you can of course go do a “docker exec -it my-container-name bash”, edit the confd.conf, and confd --stop confd --start, but that would mean you would have to do so every time you start the container.
Rather, make the necessary ConfD Basic related changes in the ./containers/modifications/confd.conf + containers/target-package-builder/resources/builder and do a docker ps (to find out if you need to stop a container), docker stop my-container-name, docker build …, docker run …

Thanks cohult for help

Hi cohult,

  1. I am able to access CLI ssh -p 2024 admin@localhost using ubuntu-confd docker image
  2. I have written own test.yang as mentioned in 7.3 confd user guide ,section 4.4
    ./confdc -c -o test.fxs test.yang
  3. my query is: How to access test.fxs in case of confd docker image.
    I have tried to put in /var/lib/docker/overlay2/5076de310a9d614640d7d7eba1c6293f4254c9dc4fea9b2635de3d45fd58507c/diff/confd/lib/confd/lib/core/confd/priv/test.fxs
    It did not work.
    Could you please give your input on this ?

There are two ways to point ConfD to where your FXS files are.

  1. From the confd.conf(5) man page:

/confdConfig/loadPath/dir (string)
This parameter may be given multiple times.
The loadPath element contains any number of ‘dir’ elements. Each ‘dir’ element points to directory path on disk which is searched for compiled YANG files (.fxs files) and compiled clispec files (.ccl files) during daemon startup.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<confdConfig xmlns="http://tail-f.com/ns/confd_cfg/1.0">
  <loadPath>
    <dir>/etc/confd</dir>
</loadPath>
  1. From the confd(1) man page:

–addloadpath Dir
Add Dir to the set of directories ConfD uses to load fxs, clispec and, optionally, bin files.

Example:

$ confd -c confd.conf --addloadpath ${CONFD_DIR}/etc/confd --foreground --verbose

Hi cohult,

Thanks for quick response.i appreciate it.
Without docker , it is working fine but I am trying to do with docker but not working.

Following steps has been done from ubuntu-confd docker image

  1. Changed ConfD-App-Notes/init-container-and-probes/containers/modifications/confd.conf
    loadPath>
    /etc/confd

  2. Copied my own test.fxs to docker library in mentioned below path
    /var/lib/docker/overlay2/bbc5b00dcafabb3edb39e10dae642b6127eab84009994d59fcff315556104070/diff/confd/etc/confd/test.fxs
    /var/lib/docker/overlay2/adae2c2656fa762153caeeb5caa61344511d2f5dd4dd7ba49e9850e3da56cbdb/diff/etc/confd/test.fxs
    /var/lib/docker/overlay2/adae2c2656fa762153caeeb5caa61344511d2f5dd4dd7ba49e9850e3da56cbdb/merged/etc/confd/test.fxs

  3. Created confd docker image as ubuntu-confd and tried to access CLI.
    Value defined in fxs in not reflecting in CLI

Could you please give input on my question ? my confusion is due to confd docker image.
If we specify path as /etc/confd in modifications/confd.conf . where should i put test.fxs in the the docker library so that confd docker image can load test.fxs ?

It would be great if you can give your input on this .

I believe you need to read up on some Docker/Kubernetes basics as you don’t copy files to a Docker container/image that way.