- Close the PR on merge to main branch in
rds-tds/would trigger the GitHub Action - GitHub action trigger
- GitHub Action docker image build and push to Docker registry (TDS, Log)
- TDS, Log, TDM (pre-build) deployed through Helm Chart
- Hosted on Kubernetes(k8s)-Cirrus
- Helm chart -
rda-tds-helmwill help the CIRRUS to get the container in the registry and deploy them
Here's the repository tree for the NCAR/gdex-tds GitHub repository:
gdex-tds/
├── .github/
├── LICENSE
├── rda-tds-helm/ (CIRRUS deployment)
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
│ ├── deployment.yaml
│ ├── ....
├── src (useful python exec to create xml and ctl)
│
└── rda-tds (actual TDS code)
├── content
├── Dockerfiles
└── ...
rda-tds-helm: the k8s/CIRRUS deployment related (change in here will not trigger deployement)Chart: Helm Chart setting (deployment chart viewable in ARGO CD)values: define the variable values that is going to be used in thetemplatestemplates: where the actual individual deployment setting in.yamldeployment.yaml- contain all containers deploynment, persistent volume mount ...etc.
- needed resources, ports, persistent volume so the container can access
- containers include
- TDS deploy include 3 mount (data, log, indexfile/xml)
- Log deploy include 1 mount (log)
- cat all log and can be viewed on Grafana
- if not done one can only view if login to the exec pod
- TDM (thredds data management) deploy 2 mount (data, indexfile/xml)
rda-tds: where all the TDS detail is located including index files and xmlcontent: all xmlcatalog.xml: all data catelogcatalog_d010079.xml: individual data catelog (can be generated bysrc/createXML.py)threddsConfig.xml: detail configuration for the TDS appearancetemplate/tdsTemplateFragments.html: the html for the TDS appearance
src: python scripts generating the control file fordsrqstor xml file for TDScreateCTL.py: create the rda control file to be added so the webpage can see the TDS columndsrqst -sc -ds d010079 -if d010079.ctl -nc -md
createXML.py: create the xml catalog
- Install
kubectl - Install Azure kubelogin
- Ask for
configfile from the CIRRUS team and put under.kube/ - Check out container
kubectl exec -it deploy/rda-tds -n rda -c rda-tds -- /bin/bash`
- useful CIRRUS intro
- create dataset xml
createXML.py dxxxxxx ./
- add dataset xml file to the catalog.xml
- GitHub action deploy the TDS container
- This create the TDS thredds server with the new dataset included but cannot be seen in the GDEX data portal column view. Following steps add the associated TDS access to the GDEX data portal
- checking deployment on ARGO CD and Grafana
- check log directly in the deployed container by using
kubectlcheck - dsrqst add dataset to the database
- try if one can see the dataset control file through
dsrqst-
dsrqst -gc -ds d010077if there is output CTL export from the database it should have some thing under the following lineControlIndex<:>Dataset<:>GroupIndex<:>RequestType<:>ControlMode<:>TarFlag<:>Specialist<:>ProcessCommand<:>EmptyOutput<:>URL<:>HostName<:>
-
- let the standard output to store in a temporary file to make sure one has a original copy
dsrqst -gc -ds d010077 > d010077.orig.dsrqst` - Create the new ctl file content using
creataCTL.pycreataCTL.py d010077 - add the standard output from above to
d010077.orig.dsrqst - update the dataset control information using
dsrqst -sc -ds d010077 -if d010077.orig.dsrqst -md(if original CTL item already exist)dsrqst -sc -ds d010077 -if d010077.orig.dsrqst -md -nc(if original CTL item DOES NOT exist)
- try if one can see the dataset control file through