{"id":35013321,"url":"https://github.com/marklogic/marklogic-operator-kubernetes","last_synced_at":"2026-03-07T01:04:00.542Z","repository":{"id":280528669,"uuid":"744215683","full_name":"marklogic/marklogic-operator-kubernetes","owner":"marklogic","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-05T20:56:19.000Z","size":1366,"stargazers_count":2,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-05T23:41:36.672Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marklogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-16T21:05:11.000Z","updated_at":"2026-01-14T18:44:43.000Z","dependencies_parsed_at":"2026-01-09T03:06:02.713Z","dependency_job_id":null,"html_url":"https://github.com/marklogic/marklogic-operator-kubernetes","commit_stats":null,"previous_names":["marklogic/marklogic-operator-kubernetes"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/marklogic/marklogic-operator-kubernetes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marklogic%2Fmarklogic-operator-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marklogic%2Fmarklogic-operator-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marklogic%2Fmarklogic-operator-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marklogic%2Fmarklogic-operator-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marklogic","download_url":"https://codeload.github.com/marklogic/marklogic-operator-kubernetes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marklogic%2Fmarklogic-operator-kubernetes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30204452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-27T05:05:41.686Z","updated_at":"2026-03-07T01:04:00.534Z","avatar_url":"https://github.com/marklogic.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MarkLogic Operator for Kubernetes\n\n## Introduction\n\nThe MarkLogic Operator for Kubernetes is an operator that allows you to deploy and manage MarkLogic clusters on Kubernetes. It provides a declarative way to define and manage MarkLogic resources. For detailed documentation, please refer to [MarkLogic Operator for Kubernetes](https://docs.progress.com/bundle/marklogic-server-on-kubernetes).\n\n## Getting Started\n\n### Prerequisites\n\n[Helm](https://helm.sh/docs/intro/install/) v3.0.0 or later and [Kubectl](https://kubernetes.io/docs/tasks/tools/) v1.30 or same as your Kubernetes version must be installed locally in order to use MarkLogic operator helm chart. \n\n### Kubernetes Version\n\nThis operator supports Kubernetes 1.30 or later.\n\n### MarkLogic Version\n\nThis operator supports MarkLogic 11.1 or later.\n\n### Run MarkLogic Operator for Kubernetes using Helm Chart\n\n1. Add MarkLogic Operator for Kubernetes Helm Repo:\n```sh\nhelm repo add marklogic-operator https://marklogic.github.io/marklogic-operator-kubernetes/\n\nhelm repo update\n```\n\n2. Install or upgrade the Helm Chart for MarkLogic Operator: \n```sh\nhelm upgrade marklogic-operator marklogic-operator/marklogic-operator-kubernetes --version=1.2.0 --install --namespace marklogic-operator-system --create-namespace\n```\n\n3. Make sure the MarkLogic Operator pod is running:\n```sh\nkubectl get pods -n marklogic-operator-system \n```\n\n4. Use this command to verify CRDs are correctly installed:\n```sh\nkubectl get crd -n marklogic-operator-system | grep 'marklogic'\n```\n\n### Install MarkLogic Cluster\nOnce MarkLogic Operator Pod is running, use your custom manifests or choose from sample manifests from this repository located in the `./config/samples` directory.\nOptionally, create a dedicated namespace for new MarkLogic resources:\n```sh\nkubectl create namespace \u003cnamespace-name\u003e\n```\n\nTo deploy a MarkLogic single group, use the `quick_start.yaml` from the `config/samples`: \n```sh\nkubectl apply -f quick_start.yaml --namespace=\u003cnamespace-name\u003e\n```\n\nOnce the installation is complete and the pod is in a running state, the MarkLogic Admin UI can be accessed using the port-forwarding command:\n```sh\nkubectl port-forward \u003cpod-name\u003e 8000:8000 8001:8001 --namespace=\u003cnamespace-name\u003e\n```\n\nIf you used the automatically generated admin credentials, use these steps to extract the admin username, password, and wallet-password from a secret:\n\n1. Run this command to fetch all of the secret names:\n```sh\nkubectl get secrets --namespace=\u003cnamespace-name\u003e\n```\nThe MarkLogic admin secret name is in the format `\u003cmarklogicCluster-name\u003e-admin`. For example, if the markLogicCluster name is `single-node`, the secret name is `single-node-admin`.\n\n2. Using the secret name from step 1, retrieve the MarkLogic admin credentials using these commands:\n```sh\nkubectl get secret single-node-admin --namespace=\u003cnamespace-name\u003e -o jsonpath='{.data.username}' | base64 --decode; echo\n\nkubectl get secret single-node-admin --namespace=\u003cnamespace-name\u003e -o jsonpath='{.data.password}' | base64 --decode; echo\n\nkubectl get secret single-node-admin --namespace=\u003cnamespace-name\u003e -o jsonpath='{.data.wallet-password}' | base64 --decode; echo\n```\n\nFor additional manifests to deploy a MarkLogic cluster inside a Kubernetes cluster, see [Operator manifest](https://docs.progress.com/bundle/marklogic-server-on-kubernetes/operator/Operator-manifest.html) in the documentation.\n\n## Clean Up\n\n#### Cleaning up MarkLogic Cluster\nUse this step to delete the MarkLogic cluster and other resources created from the manifests used in the above [step](#install-marklogic-cluster):\n```sh\nkubectl delete -f quick_start.yaml --namespace=\u003cnamespace-name\u003e\n```\n\nManually delete the persistent volume claims:\n```sh\nkubectl delete pvc -n \u003cnamespace-name\u003e -l app.kubernetes.io/name=marklogic\n```\n\n#### Deleting Helm chart\nUse these steps to delete the MarkLogic Operator Helm chart and the namespace created:\n```sh\nhelm delete marklogic-operator --namespace marklogic-operator-system\nkubectl delete namespace marklogic-operator-system\n```\n\n\u003e **Note for version 1.2.0 and later:** The MarkLogic Operator includes the `helm.sh/resource-policy: keep` annotation. When you delete the operator using the Helm command above, the Custom Resource Definitions (CRDs) and your existing MarkLogic deployments are preserved and will **not** be deleted automatically. \n\n#### Deleting Custom Resource Definitions (CRDs)\nTo perform a complete system wipe and manually delete the Custom Resource Definitions (CRDs):\n\n**Warning:** Deleting a CRD will automatically delete all Custom Resources of that type across the entire Kubernetes cluster. Only proceed if you are certain you want to permanently remove all MarkLogic resources.\n\n```sh\nkubectl delete crd marklogicclusters.marklogic.progress.com\nkubectl delete crd marklogicgroups.marklogic.progress.com\n```\n\n## Known Issues and Limitations\n\n1. The latest released version of `fluent/fluent-bit:4.1.1` has high security vulnerabilities. If you decide to enable the log collection feature, choose and deploy the fluent-bit or an alternate image with no vulnerabilities as per your requirements.\n2. Known Issues and Limitations for the MarkLogic Server Docker image can be viewed using the link: [https://github.com/marklogic/marklogic-docker?tab=readme-ov-file#Known-Issues-and-Limitations](https://github.com/marklogic/marklogic-docker?tab=readme-ov-file#Known-Issues-and-Limitations).\n3. If you're updating the group name configuration, ensure that you delete the pod to apply the changes, as we are using the OnDelete upgrade strategy.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarklogic%2Fmarklogic-operator-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarklogic%2Fmarklogic-operator-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarklogic%2Fmarklogic-operator-kubernetes/lists"}