Firebird/GettingStarted: Difference between revisions

From stonehomewiki
Jump to navigationJump to search
 
(15 intermediate revisions by the same user not shown)
Line 3: Line 3:
= Setup Firebird Kubernete Cluster =
= Setup Firebird Kubernete Cluster =
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">prerequisite</div>
<div class="mw-collapsible-preview">Brief</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
This section talks about how to setup firebird environment. Files references could be found at [https://github.com/stonezhong/firebird/tree/master/examples/getting-started https://github.com/stonezhong/firebird/tree/master/examples/getting-started]
* Assuming you have a kubernete cluster already created. In this example, we are using Kubernete provided by Oracle Cloud Infrastructure (aka OKE).
* Assuming you have a kubernete cluster already created. In this example, we are using Kubernete provided by Oracle Cloud Infrastructure (aka OKE).
* Assuming you have a machine with kubectl installed, from which you can control the kubernete cluster
* Assuming you have a machine with kubectl installed, from which you can control the kubernete cluster
Line 12: Line 14:


<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">Create namespace: firebird</div>
<div class="mw-collapsible-preview">Create kubernete namespace: firebird</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
* We are going to deploy in this namespace
* We are going to deploy in this namespace
* [https://github.com/stonezhong/firebird/blob/master/examples/getting-started/namespace.yaml namespace.yaml]
<pre><nowiki>
<pre><nowiki>
kubectl apply -f namespace.yaml
kubectl apply -f namespace.yaml
Line 30: Line 33:
<div class="mw-collapsible-preview">Setup rabbitmq and zookeeper</div>
<div class="mw-collapsible-preview">Setup rabbitmq and zookeeper</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
* [https://github.com/stonezhong/firebird/blob/master/examples/getting-started/rabbitmq.yaml rabbitmq.yaml]
* [https://github.com/stonezhong/firebird/blob/master/examples/getting-started/zookeeper.yaml zookeeper.yaml]
<pre><nowiki>
<pre><nowiki>
# the rabbitmq.yaml has specified the admin username and password
cd infra
cd infra
kubectl apply -f rabbitmq.yaml
kubectl apply -f rabbitmq.yaml
Line 40: Line 46:


<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">web console: create database</div>
<div class="mw-collapsible-preview">Setup firebird web console: create database</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Although you can create a MySQL instance in your kubernetes cluster, it is easier to create a MySQL instance if you are using a cloud provider, such as AWS, GCP, etc.
<pre><nowiki>
<pre><nowiki>
# assuming you have a MySQL 8.x installed
# assuming you have a MySQL 8.x installed
Line 59: Line 66:


<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">web console: build docker image</div>
<div class="mw-collapsible-preview">Setup firebird web console: build docker image</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
* [https://github.com/stonezhong/firebird/tree/master/examples/getting-started/console github]
<pre><nowiki>
<pre><nowiki>
cd console
cd console
Line 73: Line 81:


<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">web console: iniialize database</div>
<div class="mw-collapsible-preview">Create Secrets</div>
<div class="mw-collapsible-content">
<pre><nowiki>
kubectl create secret generic \
    firebird \
    --from-file=app_config.json=secrets/app_config.json \
    --from-file=kube_config=secrets/kube_config \
    --from-file=oci_config=secrets/oci_config \
    --from-file=oci_api_key.pem=secrets/oci_api_key.pem
</nowiki></pre>
 
* <code>secrets/app_config.json</code>, it contains information about zookeeper, rabbitmq and mysql
<pre><nowiki>
{
    "zookeeper": {
        "hosts": "zookeeper:2181"
    },
    "rabbitmq": {
        "username": "stonezhong",
        "password": "changeme",
        "host": "rabbitmq",
        "port": 5672,
        "heartbeat": 300
    },
    "mysql": {
        "db_name": "firebird",
        "username": "stonezhong",
        "password": "foobar",
        "server": "10.2.0.29"
    }
}
</nowiki></pre>
 
* <code>secrets/kube_config</code>: this is your kubernete config file, usually you can copy it from ~/.kube/config from machine which you run kubectl
* <code>secrets/oci_config</code> and <code>secrets/oci_api_key.pem</code> are your OCI configs. (this demo is about using firebird on Oracle Cloud Infracture)
</div>
</div>
<p></p>
 
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">Setup firebird web console: iniialize database</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<pre><nowiki>
<pre><nowiki>
Line 84: Line 132:


<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="toccolours mw-collapsible mw-collapsed expandable">
<div class="mw-collapsible-preview">web console: deploy to kubernete</div>
<div class="mw-collapsible-preview">Deploy firebird web console</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<pre><nowiki>
<pre><nowiki>
Line 127: Line 175:


# now you can list pipeline to make sure it is registered
# now you can list pipeline to make sure it is registered
pipeline list
/usr/src/app # pipeline list
test:
test:
     module: pipe
    namespace: firebird
    image    : iad.ocir.io/idrnu3akjpv5/firebird-app1
     module   : pipe
    running  : No
    Kubernetes
        618a0014-f9fb-475c-9d3f-840dc80d7821: src
        c3cbcea2-0936-4f80-9635-41fc7d49650e: puller
     executors: None
     executors: None
</nowiki></pre>
</nowiki></pre>

Latest revision as of 10:31, 15 September 2023

Firebird

Setup Firebird Kubernete Cluster

Deployment Sample Streaming Application