-
Export API from API Manager
-
Generate deployment repo using apictl.
-
Commit both source repo and deployment repo.
└── Online-Store-v1.0.0 └── Meta-information ├── api.yaml └── swagger.yaml
└── Online-Store-v1.0.0 ├── api-meta.yaml ├── certs └── params.yaml
- Adding new entry to the deployment
- Identify Online-Store-v1.0.0 is added/updated newly (Based on commit artifacts)
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Execute following commands to deploy
apictl import api --from-file=online_store_v1_r1.zip --params params.yaml --certs ./certs
- Updating an existing entry
- Identify Online-Store-v1.0.0 is added/updated newly (Based on commit artifacts)
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Execute following commands to deploy
apictl import api --from-file=online_store_v1_r1.zip --params params.yaml --certs ./certs --update
└── Online-Store-v1.0.0_k8s ├── api-meta.yaml ├── api_crd.yaml ├── certs └── params_cm.yaml
- Adding new entry to the deployment
- Identify Online-Store-v1.0.0 is added/updated newly (Based on commit artifacts)
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Get source zip from remote location
- Read configmap name from api_crd.yaml and then create a configmap with that name
- Deploy params_cm configmap
- Deploy certs configmaps
- Deploy api_crd.yaml
- Updating an existing entry
- Identify Online-Store-v1.0.0 is added/updated newly (Based on commit artifacts)
- Commit to source repo
- Change api-meta.yaml and api_crd.yaml (update timestamp), commit to deployment repo
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Get source zip from remote location
- Read configmap name from api_crd.yaml and then delete that cm, create a new configmap with that name
- Deploy params_cm configmap
- Deploy certs configmaps
- Deploy api_crd.yaml
- Commit to source repo
- Change api-meta.yaml and commit to deployment repo
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Get source zip from remote location
- Read configmap name from api_crd.yaml and then delete that cm, create a new configmap with that name
- API operator watches the configmaps and do the rolling update
- Commit to source repo
- Change api-meta.yaml and commit to deployment repo
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Get source zip from remote location
- Use kubectl get api foo and identify the configmap names used.
- Create new configmaps with a different name for artifacts
- Update api-crd.yaml with those names and reapply
- Delete previous identified configmap names
- Commit to source repo
- Change api-meta.yaml and commit to deployment repo
- Read api-meta.yaml - It has relevant versions, url of the artifact
- Get source zip from remote location
- Use kubectl get api foo and identify the configmap names used.
- Create new configmaps with a different name for artifacts
- Update api-crd.yaml with those names and reapply
- Delete previous identified configmap names